[Groonga-commit] groonga/grntest [master] Add progress reporter and use it as the default reporter

アーカイブの一覧に戻る

Kouhei Sutou null+****@clear*****
Sat Aug 11 19:23:16 JST 2012


Kouhei Sutou	2012-08-11 19:23:16 +0900 (Sat, 11 Aug 2012)

  New Revision: 683230f584a36f2963fa53c75449100b34c1b104
  https://github.com/groonga/grntest/commit/683230f584a36f2963fa53c75449100b34c1b104

  Log:
    Add progress reporter and use it as the default reporter

  Modified files:
    lib/groonga/tester.rb

  Modified: lib/groonga/tester.rb (+63 -2)
===================================================================
--- lib/groonga/tester.rb    2012-08-11 19:15:43 +0900 (69e9a72)
+++ lib/groonga/tester.rb    2012-08-11 19:23:16 +0900 (78ba6c7)
@@ -189,7 +189,7 @@ module Groonga
     def reporter
       if****@repor*****?
         if @n_workers == 1
-          :stream
+          :progress
         else
           :inplace
         end
@@ -512,6 +512,8 @@ module Groonga
 
       def create_reporter
         case****@teste*****
+        when :progress
+          ProgressReporter.new(@tester)
         when :stream
           StreamReporter.new(@tester)
         when :inplace
@@ -1406,7 +1408,7 @@ EOF
       end
 
       def print(message)
-        @current_column += message.to_s.size
+        @current_column += string_width(message.to_s)
         @output.print(message)
       end
 
@@ -1559,6 +1561,65 @@ EOF
       end
     end
 
+    class ProgressReporter < BaseReporter
+      def initialize(tester)
+        super
+      end
+
+      def start(result)
+      end
+
+      def start_worker(worker)
+      end
+
+      def start_suite(worker)
+      end
+
+      def start_test(worker)
+      end
+
+      def pass_test(worker, result)
+        report_test_result_mark(".", result)
+      end
+
+      def fail_test(worker, result)
+        report_test_result_mark("F", result)
+        puts
+        report_failure(worker, result)
+      end
+
+      def no_check_test(worker, result)
+        report_test_result_mark("N", result)
+        puts
+        report_actual(result)
+      end
+
+      def finish_test(worker, result)
+      end
+
+      def finish_suite(worker)
+      end
+
+      def finish_worker(worker_id)
+      end
+
+      def finish(result)
+        puts
+        puts
+        report_summary(result)
+      end
+
+      private
+      def report_test_result_mark(mark, result)
+        print(colorize(mark, result))
+        if @term_width <= @current_column
+          puts
+        else
+          @output.flush
+        end
+      end
+    end
+
     class StreamReporter < BaseReporter
       def initialize(tester)
         super
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る