drntest 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ module Drntest
18
18
  attr_accessor :port, :host, :tag
19
19
  attr_accessor :base_path, :engine_config
20
20
  attr_accessor :fluentd, :fluentd_options
21
+ attr_accessor :catalog_version
21
22
 
22
23
  def initialize
23
24
  @port = 24224
@@ -27,6 +28,7 @@ module Drntest
27
28
  @engine_config = "default"
28
29
  @fluentd = "fluentd"
29
30
  @fluentd_options = []
31
+ @catalog_version = "2"
30
32
  end
31
33
 
32
34
  def suite_path
@@ -15,16 +15,44 @@
15
15
 
16
16
  module Drntest
17
17
  class Directive
18
- attr_reader :type, :value
18
+ end
19
+
20
+ class UnknownDirective < Directive
21
+ attr_reader :type, :options
22
+
23
+ def initialize(type, options)
24
+ @type = type
25
+ @options = options
26
+ end
27
+ end
28
+
29
+ class IncludeDirective < Directive
30
+ attr_reader :path
31
+
32
+ def initialize(path)
33
+ @path = path
34
+ end
35
+ end
36
+
37
+ class EnableLoggingDirective < Directive
38
+ end
39
+
40
+ class DisableLoggingDirective < Directive
41
+ end
42
+
43
+ class OmitDirective < Directive
44
+ attr_reader :message
19
45
 
20
- def initialize(type, value)
21
- @type = normalize_type(type)
22
- @value = value
46
+ def initialize(message)
47
+ @message = message
23
48
  end
49
+ end
50
+
51
+ class RequireCatalogVersionDirective < Directive
52
+ attr_reader :version
24
53
 
25
- private
26
- def normalize_type(type)
27
- type.gsub("-", "_").to_sym
54
+ def initialize(version)
55
+ @version = version
28
56
  end
29
57
  end
30
58
  end
@@ -24,9 +24,8 @@ module Drntest
24
24
  @config = config
25
25
  end
26
26
 
27
- def start
28
- prepare
29
- setup
27
+ def start(target_path)
28
+ setup(target_path)
30
29
  end
31
30
 
32
31
  def stop
@@ -42,45 +41,78 @@ module Drntest
42
41
  end
43
42
 
44
43
  private
45
- def prepare
46
- return unless catalog_file.exist?
47
-
44
+ def load_catalog_json(target_path)
48
45
  catalog_json = JSON.parse(catalog_file.read)
49
- case catalog_json["version"]
46
+ @config.catalog_version = catalog_json["version"]
47
+ case @config.catalog_version
50
48
  when 1
51
- zone = catalog_json["zones"].first
52
- /\A([^:]+):(\d+)\/(.+)\z/ =~ zone
53
- @config.host = "localhost" # $1
54
- @config.port = $2.to_i
55
- @config.tag = $3
49
+ extract_connection_info_catalog_v1(catalog_json)
56
50
  when 2
57
- catch do |tag|
58
- datasets = catalog_json["datasets"]
59
- datasets.each do |name, dataset|
60
- dataset["replicas"].each do |replica|
61
- replica["slices"].each do |slice|
62
- if /\A([^:]+):(\d+)\/([^.]+)/ =~ slice["volume"]["address"]
63
- @config.host = "localhost" # $1
64
- @config.port = $2.to_i
65
- @config.tag = $3
66
- throw(tag)
67
- end
68
- end
51
+ custom_catalog_json_file = target_path.sub_ext(".catalog.json")
52
+ if custom_catalog_json_file.exist?
53
+ custom_catalog_json = JSON.parse(custom_catalog_json_file.read)
54
+ merge_catalog_v2!(catalog_json, custom_catalog_json)
55
+ end
56
+ extract_connection_info_catalog_v2(catalog_json)
57
+ end
58
+ catalog_json
59
+ end
60
+
61
+ def extract_connection_info_catalog_v1(catalog_json)
62
+ zone = catalog_json["zones"].first
63
+ /\A([^:]+):(\d+)\/(.+)\z/ =~ zone
64
+ @config.host = "localhost" # $1
65
+ @config.port = $2.to_i
66
+ @config.tag = $3
67
+ end
68
+
69
+ def merge_catalog_v2!(catalog_json, custom_catalog_json)
70
+ base_datasets = catalog_json["datasets"]
71
+ custom_catalog_json["datasets"].each do |name, dataset|
72
+ base_dataset = base_datasets[name]
73
+ if base_dataset
74
+ base_dataset["fact"] = dataset["fact"] || base_dataset["fact"]
75
+ base_dataset["schema"] = dataset["schema"] || base_dataset["schema"]
76
+ replicas = dataset["replicas"] || []
77
+ base_replicas = base_dataset["replicas"]
78
+ replicas.each_with_index do |replica, i|
79
+ base_replicas[i].merge!(replica)
80
+ end
81
+ else
82
+ base_datasets[name] = dataset
83
+ end
84
+ end
85
+ end
86
+
87
+ def extract_connection_info_catalog_v2(catalog_json)
88
+ datasets = catalog_json["datasets"]
89
+ datasets.each do |name, dataset|
90
+ dataset["replicas"].each do |replica|
91
+ replica["slices"].each do |slice|
92
+ if /\A([^:]+):(\d+)\/([^.]+)/ =~ slice["volume"]["address"]
93
+ @config.host = "localhost" # $1
94
+ @config.port = $2.to_i
95
+ @config.tag = $3
96
+ return
69
97
  end
70
98
  end
71
99
  end
72
100
  end
73
101
  end
74
102
 
75
- def setup
103
+ def setup(target_path)
76
104
  return unless temporary?
77
105
 
78
106
  setup_temporary_dir
79
107
 
80
108
  temporary_config = temporary_dir + "fluentd.conf"
81
109
  FileUtils.cp(config_file, temporary_config)
110
+
111
+ catalog_json = load_catalog_json(target_path)
82
112
  temporary_catalog = temporary_dir + "catalog.json"
83
- FileUtils.cp(catalog_file, temporary_catalog)
113
+ temporary_catalog.open("w") do |output|
114
+ output.puts(JSON.pretty_generate(catalog_json))
115
+ end
84
116
 
85
117
  command = [
86
118
  @config.fluentd,
@@ -0,0 +1,26 @@
1
+ # Copyright (C) 2014 Droonga Project
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ module Drntest
17
+ class InputError < StandardError
18
+ attr_reader :file, :line_number, :content
19
+ def initialize(file, line_number, content, message)
20
+ @file = file
21
+ @line_number = line_number
22
+ @content = content
23
+ super("#{message}: #{@file}:#{@line_number}: #{@content}")
24
+ end
25
+ end
26
+ end
@@ -41,8 +41,11 @@ module Drntest
41
41
  end
42
42
 
43
43
  def normalize_droonga_message_body!(body)
44
- return unless groonga_command?
45
- normalize_groonga_command_response!(body)
44
+ if groonga_command?
45
+ normalize_groonga_command_response!(body)
46
+ elsif search_command?
47
+ normalize_search_command_response!(body)
48
+ end
46
49
  end
47
50
 
48
51
  GROONGA_COMMANDS = [
@@ -55,6 +58,10 @@ module Drntest
55
58
  GROONGA_COMMANDS.include?(@request["type"])
56
59
  end
57
60
 
61
+ def search_command?
62
+ @request["type"] == "search"
63
+ end
64
+
58
65
  def normalize_droonga_message_envelope!(message)
59
66
  normalized_in_reply_to = "request-id"
60
67
  in_reply_to = message["inReplyTo"]
@@ -77,14 +84,28 @@ module Drntest
77
84
  normalize_groonga_command_header!(response[0])
78
85
  end
79
86
 
87
+ def normalized_start_time
88
+ 0.0
89
+ end
90
+
91
+ def normalized_elapsed
92
+ 0.0
93
+ end
94
+
80
95
  def normalize_groonga_command_header!(header)
81
96
  return unless header.is_a?(Array)
82
- normalized_start_time = 0.0
83
- normalized_elapsed = 0.0
84
97
  header[1] = normalized_start_time if valid_start_time?(header[1])
85
98
  header[2] = normalized_elapsed if valid_elapsed?(header[2])
86
99
  end
87
100
 
101
+ def normalize_search_command_response!(response)
102
+ response.each do |query_name, result|
103
+ if valid_elapsed?(result["elapsedTime"])
104
+ result["elapsedTime"] = normalized_elapsed
105
+ end
106
+ end
107
+ end
108
+
88
109
  def valid_start_time?(start_time)
89
110
  start_time.is_a?(Float) and start_time > 0
90
111
  end
@@ -20,19 +20,25 @@ require "drntest/response-normalizer"
20
20
 
21
21
  module Drntest
22
22
  class TestExecutor
23
- def initialize(config, test_path)
23
+ def initialize(config, test_path, results)
24
24
  @config = config
25
25
  @test_path = test_path
26
+ @results = results
26
27
  end
27
28
 
28
29
  def execute
29
- Droonga::Client.open(tag: @config.tag, port: @config.port) do |client|
30
- context = Context.new(client)
31
- operations.each do |operation|
32
- context.execute(operation)
30
+ catch do |abort_tag|
31
+ begin
32
+ Droonga::Client.open(tag: @config.tag, port: @config.port) do |client|
33
+ context = Context.new(client, @config, @results, abort_tag)
34
+ operations.each do |operation|
35
+ context.execute(operation)
36
+ end
37
+ context.finish
38
+ end
39
+ rescue
40
+ @results.errors << $!
33
41
  end
34
- context.finish
35
- context.responses
36
42
  end
37
43
  end
38
44
 
@@ -43,10 +49,11 @@ module Drntest
43
49
  end
44
50
 
45
51
  class Context
46
- attr_reader :responses
47
-
48
- def initialize(client)
52
+ def initialize(client, config, results, abort_tag)
49
53
  @client = client
54
+ @config = config
55
+ @results = results
56
+ @abort_tag = abort_tag
50
57
  @requests = []
51
58
  @responses = []
52
59
  @logging = true
@@ -63,16 +70,28 @@ module Drntest
63
70
 
64
71
  def finish
65
72
  consume_requests
73
+ @results.actuals = @responses
66
74
  end
67
75
 
68
76
  private
69
77
  def execute_directive(directive)
70
- case directive.type
71
- when :enable_logging
78
+ case directive
79
+ when EnableLoggingDirective
72
80
  @logging = true
73
81
  consume_requests
74
- when :disable_logging
82
+ when DisableLoggingDirective
75
83
  @logging = false
84
+ when OmitDirective
85
+ @results.omit(directive.message)
86
+ abort_execution
87
+ when RequireCatalogVersionDirective
88
+ if @config.catalog_version < directive.version
89
+ message =
90
+ "require catalog version #{directive.version} or later: " +
91
+ "<#{@config.catalog_version}>"
92
+ @results.omit(message)
93
+ abort_execution
94
+ end
76
95
  end
77
96
  end
78
97
 
@@ -110,6 +129,10 @@ module Drntest
110
129
  normalizer = ResponseNormalizer.new(request, response)
111
130
  normalizer.normalize
112
131
  end
132
+
133
+ def abort_execution
134
+ throw(@abort_tag)
135
+ end
113
136
  end
114
137
  end
115
138
  end
@@ -13,8 +13,12 @@
13
13
  # You should have received a copy of the GNU General Public License
14
14
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
 
16
+ require "English"
17
+ require "shellwords"
18
+
16
19
  require "drntest/json-loader"
17
20
  require "drntest/directive"
21
+ require "drntest/input-error"
18
22
 
19
23
  module Drntest
20
24
  class TestLoader
@@ -41,32 +45,59 @@ module Drntest
41
45
  operations << operation
42
46
  end
43
47
  data = ""
44
- Pathname(path).read.each_line do |line|
45
- data << line
46
- case line.chomp
47
- when /\A\#\@([^\s]+)(?:\s+(.+))?\z/
48
- type = $1
49
- value = $2
50
- directive = Directive.new(type, value)
51
- if directive.type == :include
52
- included = resolve_relative_path(directive.value)
53
- included_operations = load_test_file(included)
54
- operations += included_operations
48
+ Pathname(path).open do |input|
49
+ input.each_line do |line|
50
+ data << line
51
+ case line.chomp
52
+ when /\A\#\@([^\s]+)/
53
+ type = $1
54
+ options = Shellwords.split($POSTMATCH.strip)
55
+ directive = parse_directive(type, options)
56
+ case directive
57
+ when UnknownDirective
58
+ raise InputError.new(path, input.lineno, line,
59
+ "unknown directive: <#{directive.type}>")
60
+ when IncludeDirective
61
+ included = resolve_relative_path(directive.path)
62
+ included_operations = load_test_file(included)
63
+ operations += included_operations
64
+ else
65
+ operations << directive
66
+ end
67
+ when /\A\#/
68
+ # comment
55
69
  else
56
- operations << directive
57
- end
58
- when /\A\#/
59
- # comment
60
- else
61
- begin
62
- parser << line
63
- rescue Yajl::ParseError => error
64
- JSONLoader.report_error(path, data, error)
65
- raise error
70
+ begin
71
+ parser << line
72
+ rescue Yajl::ParseError => error
73
+ JSONLoader.report_error(path, data, error)
74
+ raise error
75
+ end
66
76
  end
67
77
  end
68
78
  end
69
79
  operations
70
80
  end
81
+
82
+ def parse_directive(type, options)
83
+ case normalize_directive_type(type)
84
+ when :include
85
+ IncludeDirective.new(options.first)
86
+ when :enable_logging
87
+ EnableLoggingDirective.new
88
+ when :disable_logging
89
+ DisableLoggingDirective.new
90
+ when :omit
91
+ OmitDirective.new(options.first)
92
+ when :require_catalog_version
93
+ RequireCatalogVersionDirective.new(Integer(options.first))
94
+ else
95
+ UnknownDirective.new(type, options)
96
+ end
97
+ end
98
+
99
+ def normalize_directive_type(type)
100
+ type.gsub("-", "_").to_sym
101
+ end
71
102
  end
72
103
  end
@@ -16,15 +16,19 @@
16
16
  module Drntest
17
17
  class TestResults
18
18
  attr_accessor :name, :actuals, :expecteds, :errors
19
+ attr_reader :omit_message
19
20
 
20
21
  def initialize(name)
21
22
  @name = name
22
23
  @actuals = []
23
24
  @expecteds = []
24
25
  @errors = []
26
+ @omitted = false
27
+ @omit_message = nil
25
28
  end
26
29
 
27
30
  def status
31
+ return :omitted if @omitted
28
32
  return :error unless @errors.empty?
29
33
  return :no_response if @actuals.empty?
30
34
  return :not_checked if @expecteds.empty?
@@ -35,5 +39,10 @@ module Drntest
35
39
  :failure
36
40
  end
37
41
  end
42
+
43
+ def omit(message)
44
+ @omitted = true
45
+ @omit_message = message
46
+ end
38
47
  end
39
48
  end
@@ -23,6 +23,7 @@ require "drntest/test-results"
23
23
  require "drntest/test-executor"
24
24
  require "drntest/json-loader"
25
25
  require "drntest/engine"
26
+ require "drntest/input-error"
26
27
 
27
28
  module Drntest
28
29
  class TestRunner
@@ -34,7 +35,7 @@ module Drntest
34
35
 
35
36
  def run
36
37
  print "#{@target_path}: "
37
- @engine.start
38
+ @engine.start(@target_path)
38
39
  begin
39
40
  results = process_requests
40
41
  ensure
@@ -47,12 +48,8 @@ module Drntest
47
48
  def process_requests
48
49
  results = TestResults.new(@target_path)
49
50
 
50
- executor = TestExecutor.new(@config, @target_path)
51
- begin
52
- results.actuals = executor.execute
53
- rescue
54
- results.errors << $!
55
- end
51
+ executor = TestExecutor.new(@config, @target_path, results)
52
+ executor.execute
56
53
  if expected_exist?
57
54
  results.expecteds = load_expected_responses
58
55
  end
@@ -65,14 +62,17 @@ module Drntest
65
62
  puts "NO RESPONSE"
66
63
  when :failure
67
64
  puts "FAILURE"
68
- output_reject_file(results.actuals)
65
+ save_reject_file(results.actuals)
69
66
  show_diff(results.expecteds, results.actuals)
70
67
  when :not_checked
71
68
  puts "NOT CHECKED"
72
- output_actual_file(results.actuals)
69
+ save_actual_file(results.actuals)
70
+ output_results(results.actuals, $stdout)
73
71
  when :error
74
72
  puts "ERROR"
75
73
  output_errors(results.errors)
74
+ when :omitted
75
+ puts "OMITTED: #{results.omit_message}"
76
76
  end
77
77
 
78
78
  results
@@ -107,20 +107,24 @@ module Drntest
107
107
  FileUtils.rm_rf(reject_path, :secure => true)
108
108
  end
109
109
 
110
- def output_reject_file(results)
111
- output_results(results, reject_path)
110
+ def save_reject_file(results)
111
+ save_results(results, reject_path)
112
112
  end
113
113
 
114
- def output_actual_file(results)
115
- output_results(results, actual_path)
114
+ def save_actual_file(results)
115
+ save_results(results, actual_path)
116
116
  end
117
117
 
118
- def output_results(results, output_path)
118
+ def save_results(results, output_path)
119
119
  puts "Saving received results as #{output_path}"
120
120
  File.open(output_path, "w") do |file|
121
- results.each do |result|
122
- file.puts(format_result(result))
123
- end
121
+ output_results(results, file)
122
+ end
123
+ end
124
+
125
+ def output_results(results, output)
126
+ results.each do |result|
127
+ output.puts(format_result(result))
124
128
  end
125
129
  end
126
130
 
@@ -172,8 +176,12 @@ module Drntest
172
176
  errors.each_with_index do |error, i|
173
177
  puts(mark)
174
178
  formatted_nth = "%*d)" % [n_digits, i + 1]
175
- puts("#{formatted_nth} #{error.message} (#{error.class})")
176
- puts(error.backtrace)
179
+ if error.is_a?(InputError)
180
+ puts("#{formatted_nth} #{error.message}")
181
+ else
182
+ puts("#{formatted_nth} #{error.message} (#{error.class})")
183
+ puts(error.backtrace)
184
+ end
177
185
  puts(mark)
178
186
  end
179
187
  end
@@ -14,5 +14,5 @@
14
14
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
 
16
16
  module Drntest
17
- VERSION = "1.1.2"
17
+ VERSION = "1.1.3"
18
18
  end
metadata CHANGED
@@ -1,113 +1,93 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drntest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Droonga Project
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-02-28 00:00:00.000000000 Z
12
+ date: 2014-03-28 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &87655010 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
24
+ version_requirements: *87655010
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: yajl-ruby
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &87654800 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
- - - '>='
30
+ - - ! '>='
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
35
+ version_requirements: *87654800
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: droonga-client
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &87654550 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
- - - '>='
41
+ - - ! '>='
46
42
  - !ruby/object:Gem::Version
47
43
  version: 0.1.1
48
44
  type: :runtime
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: 0.1.1
46
+ version_requirements: *87654550
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: bundler
57
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &87654340 !ruby/object:Gem::Requirement
50
+ none: false
58
51
  requirements:
59
- - - '>='
52
+ - - ! '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  type: :development
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
57
+ version_requirements: *87654340
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: rake
71
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &87654110 !ruby/object:Gem::Requirement
61
+ none: false
72
62
  requirements:
73
- - - '>='
63
+ - - ! '>='
74
64
  - !ruby/object:Gem::Version
75
65
  version: '0'
76
66
  type: :development
77
67
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
68
+ version_requirements: *87654110
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: packnga
85
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &87653900 !ruby/object:Gem::Requirement
72
+ none: false
86
73
  requirements:
87
- - - '>='
74
+ - - ! '>='
88
75
  - !ruby/object:Gem::Version
89
76
  version: '0'
90
77
  type: :development
91
78
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
79
+ version_requirements: *87653900
97
80
  - !ruby/object:Gem::Dependency
98
81
  name: kramdown
99
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &87653690 !ruby/object:Gem::Requirement
83
+ none: false
100
84
  requirements:
101
- - - '>='
85
+ - - ! '>='
102
86
  - !ruby/object:Gem::Version
103
87
  version: '0'
104
88
  type: :development
105
89
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
90
+ version_requirements: *87653690
111
91
  description: ''
112
92
  email:
113
93
  - droonga@groonga.org
@@ -120,42 +100,44 @@ files:
120
100
  - Rakefile
121
101
  - Gemfile
122
102
  - drntest.gemspec
103
+ - lib/drntest/test-loader.rb
104
+ - lib/drntest/engine.rb
105
+ - lib/drntest/test-executor.rb
106
+ - lib/drntest/test-suites-result.rb
123
107
  - lib/drntest/test-runner.rb
108
+ - lib/drntest/input-error.rb
124
109
  - lib/drntest/tester.rb
125
- - lib/drntest/directive.rb
126
110
  - lib/drntest/version.rb
127
- - lib/drntest/test-results.rb
128
- - lib/drntest/test-loader.rb
129
- - lib/drntest/configuration.rb
111
+ - lib/drntest/directive.rb
130
112
  - lib/drntest/json-loader.rb
131
- - lib/drntest/test-suites-result.rb
132
- - lib/drntest/test-executor.rb
113
+ - lib/drntest/test-results.rb
133
114
  - lib/drntest/response-normalizer.rb
134
- - lib/drntest/engine.rb
115
+ - lib/drntest/configuration.rb
135
116
  - bin/drntest
136
117
  homepage: https://github.com/droonga/drntest
137
118
  licenses:
138
119
  - GPLv3 or later
139
- metadata: {}
140
120
  post_install_message:
141
121
  rdoc_options: []
142
122
  require_paths:
143
123
  - lib
144
124
  required_ruby_version: !ruby/object:Gem::Requirement
125
+ none: false
145
126
  requirements:
146
- - - '>='
127
+ - - ! '>='
147
128
  - !ruby/object:Gem::Version
148
129
  version: '0'
149
130
  required_rubygems_version: !ruby/object:Gem::Requirement
131
+ none: false
150
132
  requirements:
151
- - - '>='
133
+ - - ! '>='
152
134
  - !ruby/object:Gem::Version
153
135
  version: '0'
154
136
  requirements: []
155
137
  rubyforge_project:
156
- rubygems_version: 2.0.14
138
+ rubygems_version: 1.8.11
157
139
  signing_key:
158
- specification_version: 4
140
+ specification_version: 3
159
141
  summary: Drntest is a testing framework for Droonga. You can write a test for Droonga
160
142
  by writing Droonga commands and expected result.
161
143
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 6f726abaf99e69946e00326d0c793453418bab22
4
- data.tar.gz: 06482427d09d7a13fc941195c563dcb53b1f0e72
5
- SHA512:
6
- metadata.gz: 275fd9a91d5049eee3c5b3c7008b7a81e12dd1f9cb7336dc10dc991ecb262e43782c43aefb3daf5e9a2bf5c7d2ac29180a159b2fc4bbcd3e4f88f2cb72940f0f
7
- data.tar.gz: 54f655562fb16f1ecfad673864ab9c04dc833664100dee4e12d9825c4dbcc1741ab318ed4db1a7c0c26852e468a2e27fb0400e45b40f1f77d554305e5f98dbf1