[Groonga-commit] groonga/grntest at c265e51 [master] Apply timeout to each request

Back to archive index

Kouhei Sutou null+****@clear*****
Wed May 25 15:46:05 JST 2016


Kouhei Sutou	2016-05-25 15:46:05 +0900 (Wed, 25 May 2016)

  New Revision: c265e5120692243d7018e4de3023875c2a478008
  https://github.com/groonga/grntest/commit/c265e5120692243d7018e4de3023875c2a478008

  Message:
    Apply timeout to each request

  Modified files:
    lib/grntest/execution-context.rb
    lib/grntest/executors/base-executor.rb
    lib/grntest/test-runner.rb

  Modified: lib/grntest/execution-context.rb (+4 -0)
===================================================================
--- lib/grntest/execution-context.rb    2016-05-22 20:55:54 +0900 (4a3c9b3)
+++ lib/grntest/execution-context.rb    2016-05-25 15:46:05 +0900 (6061e54)
@@ -22,6 +22,8 @@ module Grntest
     attr_accessor :output_type
     attr_accessor :on_error
     attr_accessor :abort_tag
+    attr_accessor :timeout
+    attr_accessor :default_timeout
     attr_writer :collect_query_log
     attr_writer :debug
     def initialize
@@ -37,6 +39,8 @@ module Grntest
       @query_log = nil
       @on_error = :default
       @abort_tag = nil
+      @timeout = 0
+      @default_timeout = 0
       @omitted = false
       @collect_query_log = false
       @debug = false

  Modified: lib/grntest/executors/base-executor.rb (+13 -9)
===================================================================
--- lib/grntest/executors/base-executor.rb    2016-05-22 20:55:54 +0900 (6a39594)
+++ lib/grntest/executors/base-executor.rb    2016-05-25 15:46:05 +0900 (c572c30)
@@ -39,7 +39,6 @@ module Grntest
         @pending_load_command = nil
         @current_command_name = nil
         @output_type = nil
-        @timeout = default_timeout
         @long_timeout = default_long_timeout
         @context = context
         @custom_important_log_levels = []
@@ -75,7 +74,9 @@ module Grntest
 
       def shutdown(pid)
         begin
-          send_command(command("shutdown"))
+          Timeout.timeout(@context.timeout) do
+            send_command(command("shutdown"))
+          end
         rescue
           return false
         end
@@ -189,12 +190,12 @@ module Grntest
         invalid_value_p = false
         case timeout
         when "default"
-          @timeout = default_timeout
+          @context.timeout =****@conte*****_timeout
         when nil
           invalid_value_p = true
         else
           begin
-            @timeout = Float(timeout)
+            @context.timeout = Float(timeout)
           rescue ArgumentError
             invalid_value_p = true
           end
@@ -360,8 +361,15 @@ module Grntest
       def execute_command(command)
         extract_command_info(command)
         log_input("#{command.original_source}\n")
+        timeout =****@conte*****
+        response = nil
         begin
-          response = send_command(command)
+          Timeout.timeout(timeout) do
+            response = send_command(command)
+          end
+        rescue Timeout::Error
+          log_error("# error: timeout (#{timeout}s)")
+          @context.error
         rescue => error
           log_error("# error: #{error.class}: #{error.message}")
           error.backtrace.each do |line|
@@ -499,10 +507,6 @@ module Grntest
         output
       end
 
-      def default_timeout
-        3
-      end
-
       def default_long_timeout
         180
       end

  Modified: lib/grntest/test-runner.rb (+4 -10)
===================================================================
--- lib/grntest/test-runner.rb    2016-05-22 20:55:54 +0900 (2bada94)
+++ lib/grntest/test-runner.rb    2016-05-25 15:46:05 +0900 (f47329e)
@@ -136,18 +136,12 @@ module Grntest
         context.groonga_suggest_create_dataset =
           @tester.groonga_suggest_create_dataset
         context.output_type =****@teste*****_type
+        context.timeout =****@teste*****
+        context.timeout = 0 if****@teste*****
+        context.default_timeout = context.timeout
         context.debug =****@teste*****?
         run_groonga(context) do |executor|
-          timeout =****@teste*****
-          timeout = 0 if****@teste*****
-          begin
-            Timeout.timeout(timeout) do
-              executor.execute(test_script_path)
-            end
-          rescue Timeout::Error
-            message = "# error: timeout (#{timeout}s)"
-            context.result << [:error, message, {}]
-          end
+          executor.execute(test_script_path)
         end
         check_memory_leak(context)
         result.omitted = context.omitted?
-------------- next part --------------
HTML����������������������������...
下载 



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