[Groonga-commit] groonga/grntest [master] Show failed tests in parallel tests

Back to archive index

null+****@clear***** null+****@clear*****
Sat Aug 11 14:18:52 JST 2012


Kouhei Sutou	2012-08-11 14:18:52 +0900 (Sat, 11 Aug 2012)

  New Revision: 365764345f05ffc70858f864ed99e19a75c6d658
  https://github.com/groonga/grntest/commit/365764345f05ffc70858f864ed99e19a75c6d658

  Log:
    Show failed tests in parallel tests

  Modified files:
    lib/groonga/tester.rb

  Modified: lib/groonga/tester.rb (+47 -33)
===================================================================
--- lib/groonga/tester.rb    2012-08-11 14:13:00 +0900 (468da65)
+++ lib/groonga/tester.rb    2012-08-11 14:18:52 +0900 (793ba83)
@@ -1294,6 +1294,33 @@ EOF
         puts("%.4g%% passed in %.4fs." % [pass_ratio, elapsed_time])
       end
 
+      def report_failure(result)
+        report_marker
+        report_diff(result.expected, result.actual)
+        report_marker
+      end
+
+      def report_marker
+        puts("=" * @term_width)
+      end
+
+      def report_diff(expected, actual)
+        create_temporary_file("expected", expected) do |expected_file|
+          create_temporary_file("actual", actual) do |actual_file|
+            diff_options =****@teste*****_options.dup
+            diff_options.concat(["--label", "(actual)", actual_file.path,
+                                 "--label", "(expected)", expected_file.path])
+            system(@tester.diff, *diff_options)
+          end
+        end
+      end
+
+      def report_test_result(result, label)
+        message = " %10.4fs [%s]" % [result.elapsed_time, label]
+        message = message.rjust(@term_width - @current_column) if @term_width > 0
+        puts(message)
+      end
+
       def print(message)
         @current_column += message.to_s.size
         @output.print(message)
@@ -1309,6 +1336,13 @@ EOF
         @current_column = 0
       end
 
+      def create_temporary_file(key, content)
+        file = Tempfile.new("groonga-test-#{key}")
+        file.print(content)
+        file.close
+        yield(file)
+      end
+
       def guess_term_width
         Integer(ENV["COLUMNS"] || ENV["TERM_WIDTH"] || 79)
       rescue ArgumentError
@@ -1340,20 +1374,15 @@ EOF
 
       def pass_test(worker, result)
         report_test_result(result, worker.status)
-        puts
       end
 
       def fail_test(worker, result)
         report_test_result(result, worker.status)
-        puts
-        puts("=" * @term_width)
-        report_diff(result.expected, result.actual)
-        puts("=" * @term_width)
+        report_failure(worker, result)
       end
 
       def no_check_test(worker, result)
         report_test_result(result, worker.status)
-        puts
         puts(result.actual)
       end
 
@@ -1370,31 +1399,6 @@ EOF
         puts
         report_summary(result)
       end
-
-      private
-      def report_test_result(result, label)
-        message = " %10.4fs [%s]" % [result.elapsed_time, label]
-        message = message.rjust(@term_width - @current_column) if @term_width > 0
-        print(message)
-      end
-
-      def report_diff(expected, actual)
-        create_temporary_file("expected", expected) do |expected_file|
-          create_temporary_file("actual", actual) do |actual_file|
-            diff_options =****@teste*****_options.dup
-            diff_options.concat(["--label", "(actual)", actual_file.path,
-                                 "--label", "(expected)", expected_file.path])
-            system(@tester.diff, *diff_options)
-          end
-        end
-      end
-
-      def create_temporary_file(key, content)
-        file = Tempfile.new("groonga-test-#{key}")
-        file.print(content)
-        file.close
-        yield(file)
-      end
     end
 
     class InplaceReporter < BaseReporter
@@ -1424,7 +1428,13 @@ EOF
       end
 
       def fail_test(worker, result)
-        redraw
+        redraw do
+          report_marker
+          puts("[#{worker.id}] #{worker.suite_name}")
+          print("  #{worker.test_name}")
+          report_test_result(result, worker.status)
+          report_failure(result)
+        end
       end
 
       def no_check_test(worker, result)
@@ -1474,7 +1484,11 @@ EOF
       def redraw
         @mutex.synchronize do
           draw
-          up_n_lines(n_using_lines)
+          if block_given?
+            yield
+          else
+            up_n_lines(n_using_lines)
+          end
         end
       end
 
-------------- next part --------------
HTML����������������������������...
Download 



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