[Groonga-commit] groonga/grntest at a041cc4 [master] Extract test suites runner

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Aug 12 12:33:23 JST 2013


Kouhei Sutou	2013-08-12 12:33:23 +0900 (Mon, 12 Aug 2013)

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

  Message:
    Extract test suites runner

  Added files:
    lib/grntest/test-suites-runner.rb
  Modified files:
    lib/grntest/tester.rb

  Added: lib/grntest/test-suites-runner.rb (+139 -0) 100644
===================================================================
--- /dev/null
+++ lib/grntest/test-suites-runner.rb    2013-08-12 12:33:23 +0900 (ee58a23)
@@ -0,0 +1,139 @@
+# -*- 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/reporters"
+require "grntest/worker"
+require "grntest/base-result"
+
+module Grntest
+  class TestSuitesResult < BaseResult
+    attr_accessor :workers
+    attr_accessor :n_total_tests
+    def initialize
+      super
+      @workers = []
+      @n_total_tests = 0
+    end
+
+    def pass_ratio
+      n_target_tests = n_tests - n_not_checked_tests
+      if n_target_tests.zero?
+        0
+      else
+        (n_passed_tests / n_target_tests.to_f) * 100
+      end
+    end
+
+    def n_tests
+      collect_count(:n_tests)
+    end
+
+    def n_passed_tests
+      collect_count(:n_passed_tests)
+    end
+
+    def n_failed_tests
+      collect_count(:n_failed_tests)
+    end
+
+    def n_leaked_tests
+      collect_count(:n_leaked_tests)
+    end
+
+    def n_omitted_tests
+      collect_count(:n_omitted_tests)
+    end
+
+    def n_not_checked_tests
+      collect_count(:n_not_checked_tests)
+    end
+
+    private
+    def collect_count(item)
+      counts =****@worke***** do |worker|
+        worker.result.send(item)
+      end
+      counts.inject(&:+)
+    end
+  end
+
+  class TestSuitesRunner
+    def initialize(tester)
+      @tester = tester
+      @reporter = create_reporter
+      @result = TestSuitesResult.new
+    end
+
+    def run(test_suites)
+      succeeded = true
+
+      @result.measure do
+        succeeded = run_test_suites(test_suites)
+      end
+      @reporter.on_finish(@result)
+
+      succeeded
+    end
+
+    private
+    def run_test_suites(test_suites)
+      queue = Queue.new
+      test_suites.each do |suite_name, test_script_paths|
+        next unles****@teste*****_test_suite?(suite_name)
+        test_script_paths.each do |test_script_path|
+          test_name = test_script_path.basename(".*").to_s
+          next unles****@teste*****_test?(test_name)
+          queue << [suite_name, test_script_path, test_name]
+          @result.n_total_tests += 1
+        end
+      end
+      @tester.n_workers.times do
+        queue << nil
+      end
+
+      workers = []
+      @tester.n_workers.times do |i|
+        workers << Worker.new(i, @tester, @result, @reporter)
+      end
+      @result.workers = workers
+      @reporter.on_start(@result)
+
+      succeeded = true
+      worker_threads = []
+      @tester.n_workers.times do |i|
+        worker = workers[i]
+        worker_threads << Thread.new do
+          succeeded = false unless worker.run(queue)
+        end
+      end
+
+      begin
+        worker_threads.each(&:join)
+      rescue Interrupt
+        workers.each do |worker|
+          worker.interrupt
+        end
+      end
+
+      succeeded
+    end
+
+    def create_reporter
+      Grntest::Reporters.create_repoter(@tester)
+    end
+  end
+end

  Modified: lib/grntest/tester.rb (+1 -123)
===================================================================
--- lib/grntest/tester.rb    2013-08-12 12:31:42 +0900 (790bc5e)
+++ lib/grntest/tester.rb    2013-08-12 12:33:23 +0900 (7035a55)
@@ -15,16 +15,11 @@
 # 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 "English"
 require "optparse"
 require "pathname"
 
 require "grntest/version"
-require "grntest/error"
-require "grntest/reporters"
-require "grntest/executors"
-require "grntest/worker"
-require "grntest/base-result"
+require "grntest/test-suites-runner"
 
 module Grntest
   class Tester
@@ -366,122 +361,5 @@ module Grntest
         false
       end
     end
-
-    class TestSuitesResult < BaseResult
-      attr_accessor :workers
-      attr_accessor :n_total_tests
-      def initialize
-        super
-        @workers = []
-        @n_total_tests = 0
-      end
-
-      def pass_ratio
-        n_target_tests = n_tests - n_not_checked_tests
-        if n_target_tests.zero?
-          0
-        else
-          (n_passed_tests / n_target_tests.to_f) * 100
-        end
-      end
-
-      def n_tests
-        collect_count(:n_tests)
-      end
-
-      def n_passed_tests
-        collect_count(:n_passed_tests)
-      end
-
-      def n_failed_tests
-        collect_count(:n_failed_tests)
-      end
-
-      def n_leaked_tests
-        collect_count(:n_leaked_tests)
-      end
-
-      def n_omitted_tests
-        collect_count(:n_omitted_tests)
-      end
-
-      def n_not_checked_tests
-        collect_count(:n_not_checked_tests)
-      end
-
-      private
-      def collect_count(item)
-        counts =****@worke***** do |worker|
-          worker.result.send(item)
-        end
-        counts.inject(&:+)
-      end
-    end
-
-    class TestSuitesRunner
-      def initialize(tester)
-        @tester = tester
-        @reporter = create_reporter
-        @result = TestSuitesResult.new
-      end
-
-      def run(test_suites)
-        succeeded = true
-
-        @result.measure do
-          succeeded = run_test_suites(test_suites)
-        end
-        @reporter.on_finish(@result)
-
-        succeeded
-      end
-
-      private
-      def run_test_suites(test_suites)
-        queue = Queue.new
-        test_suites.each do |suite_name, test_script_paths|
-          next unles****@teste*****_test_suite?(suite_name)
-          test_script_paths.each do |test_script_path|
-            test_name = test_script_path.basename(".*").to_s
-            next unles****@teste*****_test?(test_name)
-            queue << [suite_name, test_script_path, test_name]
-            @result.n_total_tests += 1
-          end
-        end
-        @tester.n_workers.times do
-          queue << nil
-        end
-
-        workers = []
-        @tester.n_workers.times do |i|
-          workers << Worker.new(i, @tester, @result, @reporter)
-        end
-        @result.workers = workers
-        @reporter.on_start(@result)
-
-        succeeded = true
-        worker_threads = []
-        @tester.n_workers.times do |i|
-          worker = workers[i]
-          worker_threads << Thread.new do
-            succeeded = false unless worker.run(queue)
-          end
-        end
-
-        begin
-          worker_threads.each(&:join)
-        rescue Interrupt
-          workers.each do |worker|
-            worker.interrupt
-          end
-        end
-
-        succeeded
-      end
-
-      def create_reporter
-        Grntest::Reporters.create_repoter(@tester)
-      end
-    end
   end
 end
-------------- next part --------------
HTML����������������������������...
Download 



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