[Groonga-commit] groonga/grntest at d42377d [master] Extract worker

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Aug 12 12:31:42 JST 2013


Kouhei Sutou	2013-08-12 12:31:42 +0900 (Mon, 12 Aug 2013)

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

  Message:
    Extract worker

  Added files:
    lib/grntest/worker.rb
  Modified files:
    lib/grntest/tester.rb

  Modified: lib/grntest/tester.rb (+1 -144)
===================================================================
--- lib/grntest/tester.rb    2013-08-12 12:24:48 +0900 (82c5f09)
+++ lib/grntest/tester.rb    2013-08-12 12:31:42 +0900 (790bc5e)
@@ -23,7 +23,7 @@ require "grntest/version"
 require "grntest/error"
 require "grntest/reporters"
 require "grntest/executors"
-require "grntest/test-runner"
+require "grntest/worker"
 require "grntest/base-result"
 
 module Grntest
@@ -367,149 +367,6 @@ module Grntest
       end
     end
 
-    class WorkerResult < BaseResult
-      attr_reader :n_tests, :n_passed_tests, :n_leaked_tests
-      attr_reader :n_omitted_tests, :n_not_checked_tests
-      attr_reader :failed_tests
-      def initialize
-        super
-        @n_tests = 0
-        @n_passed_tests = 0
-        @n_leaked_tests = 0
-        @n_omitted_tests = 0
-        @n_not_checked_tests = 0
-        @failed_tests = []
-      end
-
-      def n_failed_tests
-        @failed_tests.size
-      end
-
-      def on_test_finish
-        @n_tests += 1
-      end
-
-      def on_test_success
-        @n_passed_tests += 1
-      end
-
-      def on_test_failure(name)
-        @failed_tests << name
-      end
-
-      def on_test_leak(name)
-        @n_leaked_tests += 1
-      end
-
-      def on_test_omission
-        @n_omitted_tests += 1
-      end
-
-      def on_test_no_check
-        @n_not_checked_tests += 1
-      end
-    end
-
-    class Worker
-      attr_reader :id, :tester, :test_suites_rusult, :reporter
-      attr_reader :suite_name, :test_script_path, :test_name, :status, :result
-      def initialize(id, tester, test_suites_result, reporter)
-        @id = id
-        @tester = tester
-        @test_suites_result = test_suites_result
-        @reporter = reporter
-        @suite_name = nil
-        @test_script_path = nil
-        @test_name = nil
-        @interruptted = false
-        @status = "not running"
-        @result = WorkerResult.new
-      end
-
-      def interrupt
-        @interruptted = true
-      end
-
-      def interruptted?
-        @interruptted
-      end
-
-      def run(queue)
-        succeeded = true
-
-        @result.measure do
-          @reporter.on_worker_start(self)
-          catch do |tag|
-            loop do
-              suite_name, test_script_path, test_name = queue.pop
-              break if test_script_path.nil?
-
-              unless @suite_name == suite_name
-                @reporter.on_suite_finish(self) if @suite_name
-                @suite_name = suite_name
-                @reporter.on_suite_start(self)
-              end
-              @test_script_path = test_script_path
-              @test_name = test_name
-              runner = TestRunner.new(@tester, self)
-              succeeded = false unless runner.run
-
-              break if interruptted?
-            end
-            @status = "finished"
-            @reporter.on_suite_finish(@suite_name) if @suite_name
-            @suite_name = nil
-          end
-        end
-        @reporter.on_worker_finish(self)
-
-        succeeded
-      end
-
-      def on_test_start
-        @status = "running"
-        @test_result = nil
-        @reporter.on_test_start(self)
-      end
-
-      def on_test_success(result)
-        @status = "passed"
-        @result.on_test_success
-        @reporter.on_test_success(self, result)
-      end
-
-      def on_test_failure(result)
-        @status = "failed"
-        @result.on_test_failure(test_name)
-        @reporter.on_test_failure(self, result)
-      end
-
-      def on_test_leak(result)
-        @status = "leaked(#{result.n_leaked_objects})"
-        @result.on_test_leak(test_name)
-        @reporter.on_test_leak(self, result)
-      end
-
-      def on_test_omission(result)
-        @status = "omitted"
-        @result.on_test_omission
-        @reporter.on_test_omission(self, result)
-      end
-
-      def on_test_no_check(result)
-        @status = "not checked"
-        @result.on_test_no_check
-        @reporter.on_test_no_check(self, result)
-      end
-
-      def on_test_finish(result)
-        @result.on_test_finish
-        @reporter.on_test_finish(self, result)
-        @test_script_path = nil
-        @test_name = nil
-      end
-    end
-
     class TestSuitesResult < BaseResult
       attr_accessor :workers
       attr_accessor :n_total_tests

  Added: lib/grntest/worker.rb (+164 -0) 100644
===================================================================
--- /dev/null
+++ lib/grntest/worker.rb    2013-08-12 12:31:42 +0900 (ddbe3d1)
@@ -0,0 +1,164 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2012-2013  Kouhei Sutou <kou �� clear-code.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+require "grntest/base-result"
+require "grntest/test-runner"
+
+module Grntest
+  class WorkerResult < BaseResult
+    attr_reader :n_tests, :n_passed_tests, :n_leaked_tests
+    attr_reader :n_omitted_tests, :n_not_checked_tests
+    attr_reader :failed_tests
+    def initialize
+      super
+      @n_tests = 0
+      @n_passed_tests = 0
+      @n_leaked_tests = 0
+      @n_omitted_tests = 0
+      @n_not_checked_tests = 0
+      @failed_tests = []
+    end
+
+    def n_failed_tests
+      @failed_tests.size
+    end
+
+    def on_test_finish
+      @n_tests += 1
+    end
+
+    def on_test_success
+      @n_passed_tests += 1
+    end
+
+    def on_test_failure(name)
+      @failed_tests << name
+    end
+
+    def on_test_leak(name)
+      @n_leaked_tests += 1
+    end
+
+    def on_test_omission
+      @n_omitted_tests += 1
+    end
+
+    def on_test_no_check
+      @n_not_checked_tests += 1
+    end
+  end
+
+  class Worker
+    attr_reader :id, :tester, :test_suites_rusult, :reporter
+    attr_reader :suite_name, :test_script_path, :test_name, :status, :result
+    def initialize(id, tester, test_suites_result, reporter)
+      @id = id
+      @tester = tester
+      @test_suites_result = test_suites_result
+      @reporter = reporter
+      @suite_name = nil
+      @test_script_path = nil
+      @test_name = nil
+      @interruptted = false
+      @status = "not running"
+      @result = WorkerResult.new
+    end
+
+    def interrupt
+      @interruptted = true
+    end
+
+    def interruptted?
+      @interruptted
+    end
+
+    def run(queue)
+      succeeded = true
+
+      @result.measure do
+        @reporter.on_worker_start(self)
+        catch do |tag|
+          loop do
+            suite_name, test_script_path, test_name = queue.pop
+            break if test_script_path.nil?
+
+            unless @suite_name == suite_name
+              @reporter.on_suite_finish(self) if @suite_name
+              @suite_name = suite_name
+              @reporter.on_suite_start(self)
+            end
+            @test_script_path = test_script_path
+            @test_name = test_name
+            runner = TestRunner.new(@tester, self)
+            succeeded = false unless runner.run
+
+            break if interruptted?
+          end
+          @status = "finished"
+          @reporter.on_suite_finish(@suite_name) if @suite_name
+          @suite_name = nil
+        end
+      end
+      @reporter.on_worker_finish(self)
+
+      succeeded
+    end
+
+    def on_test_start
+      @status = "running"
+      @test_result = nil
+      @reporter.on_test_start(self)
+    end
+
+    def on_test_success(result)
+      @status = "passed"
+      @result.on_test_success
+      @reporter.on_test_success(self, result)
+    end
+
+    def on_test_failure(result)
+      @status = "failed"
+      @result.on_test_failure(test_name)
+      @reporter.on_test_failure(self, result)
+    end
+
+    def on_test_leak(result)
+      @status = "leaked(#{result.n_leaked_objects})"
+      @result.on_test_leak(test_name)
+      @reporter.on_test_leak(self, result)
+    end
+
+    def on_test_omission(result)
+      @status = "omitted"
+      @result.on_test_omission
+      @reporter.on_test_omission(self, result)
+    end
+
+    def on_test_no_check(result)
+      @status = "not checked"
+      @result.on_test_no_check
+      @reporter.on_test_no_check(self, result)
+    end
+
+    def on_test_finish(result)
+      @result.on_test_finish
+      @reporter.on_test_finish(self, result)
+      @test_script_path = nil
+      @test_name = nil
+    end
+  end
+end
-------------- next part --------------
HTML����������������������������...
Download 



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