[Groonga-commit] groonga/grntest [master] Add on-error directive

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index