HAYASHI Kentaro
null+****@clear*****
Mon Nov 19 15:14:00 JST 2012
HAYASHI Kentaro 2012-11-19 15:14:00 +0900 (Mon, 19 Nov 2012) New Revision: 60ac5db8dc3dc25da5bf3fe0a406abbe46c94a68 https://github.com/groonga/grntest/commit/60ac5db8dc3dc25da5bf3fe0a406abbe46c94a68 Log: Add on-error directive on-error directive accepts "default" or "omit" as argument. There is the difference between "default" and "omit". default: when error occurs, it is treated as failed status, this is normal behavior. omit: when error occurs, it is treated as if "not checked". Modified files: lib/grntest/tester.rb Modified: lib/grntest/tester.rb (+36 -3) =================================================================== --- lib/grntest/tester.rb 2012-11-19 15:01:46 +0900 (b44386a) +++ lib/grntest/tester.rb 2012-11-19 15:14:00 +0900 (8ca3a86) @@ -698,6 +698,7 @@ module Grntest @worker = worker @max_n_columns = MAX_N_COLUMNS @id = nil + @on_error = :default end def run @@ -715,9 +716,13 @@ module Grntest @worker.pass_test(result) remove_reject_file when :failure - @worker.fail_test(result) - output_reject_file(result.actual) - succeeded = false + if @on_error == :omit + @worker.not_checked_test(result) + else + @worker.fail_test(result) + output_reject_file(result.actual) + succeeded = false + end when :leaked @worker.leaked_test(result) succeeded = false @@ -749,6 +754,7 @@ module Grntest context.output_type =****@teste*****_type run_groonga(context) do |executor| executor.execute(test_script_path) + @on_error = context.on_error end check_memory_leak(context) context.result @@ -1135,6 +1141,7 @@ EOF attr_accessor :groonga_suggest_create_dataset attr_accessor :result attr_accessor :output_type + attr_accessor :on_error def initialize @logging = true @base_directory = Pathname(".") @@ -1145,6 +1152,7 @@ EOF @result = [] @output_type = "json" @log = nil + @on_error = :default end def logging? @@ -1173,6 +1181,10 @@ EOF def relative_db_path @db_path.relative_path_from(@temporary_directory_path) end + + def on_error? + @on_error + end end attr_reader :context @@ -1319,6 +1331,25 @@ EOF end end + def execute_directive_on_error(line, content, options) + error_mode, = options + invalid_value_p = false + case error_mode + when "default" + @context.on_error = :default + when "omit" + @context.on_error = :omit + else + invalid_value_p = true + end + + if invalid_value_p + log_input(line) + message = "on-error must be 'default' or 'omit': <#{error_mode}>" + log_error("#|e| [on-error] #{message}") + end + end + def execute_directive(line, content) command, *options = Shellwords.split(content) case command @@ -1334,6 +1365,8 @@ EOF execute_directive_copy_path(line, content, options) when "long-timeout" execute_directive_long_timeout(line, content, options) + when "on-error" + execute_directive_on_error(line, content, options) else log_input(line) log_error("#|e| unknown directive: <#{command}>") -------------- next part -------------- HTML����������������������������...Download