Kouhei Sutou
null+****@clear*****
Thu Mar 20 00:23:30 JST 2014
Kouhei Sutou 2014-03-20 00:23:30 +0900 (Thu, 20 Mar 2014) New Revision: 8d0ce60bbbb34ea5785deedca6598115c26c1e24 https://github.com/droonga/drntest/commit/8d0ce60bbbb34ea5785deedca6598115c26c1e24 Message: Support merging custom catalog.json for each test Modified files: lib/drntest/engine.rb lib/drntest/test-runner.rb Modified: lib/drntest/engine.rb (+28 -3) =================================================================== --- lib/drntest/engine.rb 2014-03-19 23:48:53 +0900 (a410803) +++ lib/drntest/engine.rb 2014-03-20 00:23:30 +0900 (4551a49) @@ -24,8 +24,8 @@ module Drntest @config = config end - def start - prepare + def start(target_path) + prepare(target_path) setup end @@ -42,7 +42,7 @@ module Drntest end private - def prepare + def prepare(target_path) return unless catalog_file.exist? catalog_json = JSON.parse(catalog_file.read) @@ -51,6 +51,14 @@ module Drntest when 1 prepare_catalog_v1(catalog_json) when 2 + custom_catalog_json_file = target_path.sub_ext(".catalog.json") + if custom_catalog_json_file.exist? + custom_catalog_json = JSON.parse(custom_catalog_json_file.read) + merge_catalog_v2!(catalog_json, custom_catalog_json) + catalog_file.open("w") do |output| + output.puts(JSON.generate(catalog_json)) + end + end prepare_catalog_v2(catalog_json) end end @@ -63,6 +71,23 @@ module Drntest @config.tag = $3 end + def merge_catalog_v2!(catalog_json, custom_catalog_json) + base_datasets = catalog_json["datasets"] + custom_catalog_json["datasets"].each do |name, dataset| + base_dataset = base_datasets[name] + if base_dataset + base_dataset["schema"] = dataset["schema"] || base_dataset["schema"] + replicas = dataset["replicas"] || [] + base_replicas = base_dataset["replicas"] + replicas.each_with_index do |replica, i| + base_replicas[i].merge!(replica) + end + else + base_datasets[name] = dataset + end + end + end + def prepare_catalog_v2(catalog_json) catch do |tag| datasets = catalog_json["datasets"] Modified: lib/drntest/test-runner.rb (+1 -1) =================================================================== --- lib/drntest/test-runner.rb 2014-03-19 23:48:53 +0900 (130118f) +++ lib/drntest/test-runner.rb 2014-03-20 00:23:30 +0900 (66c280a) @@ -35,7 +35,7 @@ module Drntest def run print "#{@target_path}: " - @engine.start + @engine.start(@target_path) begin results = process_requests ensure -------------- next part -------------- HTML����������������������������...Download