[Groonga-commit] groonga/groonga-test [master] Extract common codes

アーカイブの一覧に戻る

null+****@clear***** null+****@clear*****
2012年 3月 2日 (金) 17:00:07 JST


Kouhei Sutou	2012-03-02 17:00:07 +0900 (Fri, 02 Mar 2012)

  New Revision: e0193804792651fd93a5f5c5d1977b5b91c6f492

  Log:
    Extract common codes

  Modified files:
    bin/groonga-test

  Modified: bin/groonga-test (+21 -12)
===================================================================
--- bin/groonga-test    2012-03-02 16:54:30 +0900 (b6125cf)
+++ bin/groonga-test    2012-03-02 17:00:07 +0900 (a84b315)
@@ -42,7 +42,7 @@ class GroongaTester
         run_test(target_path)
       end
     end
-    report
+    report_summary
   end
 
   private
@@ -58,16 +58,7 @@ class GroongaTester
         puts("[pass]")
       else
         puts("[failed]")
-        expected_result_file = Tempfile.new("groonga-test-expected")
-        expected_result_file.print(expected_result)
-        expected_result_file.close
-        actual_result_file = Tempfile.new("groonga-test-actual")
-        actual_result_file.print(actual_result)
-        actual_result_file.close
-        diff_options = @diff_options
-        diff_options.concat(["--label", "(expected)", expected_result_file.path,
-                             "--label", "(actual)", actual_result_file.path])
-        system(@diff, *diff_options)
+        report_diff(expected_result, actual_result)
         @failed_tests << test_name
       end
     else
@@ -76,7 +67,18 @@ class GroongaTester
     end
   end
 
-  def report
+  def report_diff(expected_result, actual_result)
+    create_temporary_file("expected", expected_result) do |expected_result_file|
+      create_temporary_file("actual", actual_result) do |actual_result_file|
+        diff_options = @diff_options.dup
+        diff_options.concat(["--label", "(expected)", expected_result_file.path,
+                             "--label", "(actual)", actual_result_file.path])
+        system(@diff, *diff_options)
+      end
+    end
+  end
+
+  def report_summary
   end
 
   def run_groonga_script(script_path)
@@ -108,6 +110,13 @@ class GroongaTester
     end
   end
 
+  def create_temporary_file(key, content)
+    file = Tempfile.new("groonga-test-#{key}")
+    file.print(content)
+    file.close
+    yield file
+  end
+
   def run_groonga(db_path)
     IO.popen([@groonga, "-n", db_path], "r+") do |io|
       begin




Groonga-commit メーリングリストの案内
アーカイブの一覧に戻る