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����������������������������...下载