Browse Source

Make performance tests write output to a file

jonathanvdc 8 years ago
parent
commit
214cc7c514

+ 2 - 1
performance/test_fibonacci.py

@@ -10,7 +10,8 @@ class TestFibonacci(unittest.TestCase):
         self.fibonacci(utils.OPTIMIZATION_LEVEL_BASELINE_JIT)
 
     def fibonacci(self, optimization_level):
-        print(
+        utils.write_perf_to_file(
+            'fibonacci', optimization_level,
             utils.run_perf_test(
                 ["test_harness.alc", "fibonacci.alc", "primitives.alc", "jit.alc"],
                 [20],

+ 2 - 1
performance/test_matrix_create.py

@@ -10,7 +10,8 @@ class TestMatrixCreate(unittest.TestCase):
         self.create_matrix(utils.OPTIMIZATION_LEVEL_BASELINE_JIT)
 
     def create_matrix(self, optimization_level):
-        print(
+        utils.write_perf_to_file(
+            'matrix_create', optimization_level,
             utils.run_perf_test(
                 ["test_harness.alc", "matrix.alc",
                  "matrix_create.alc", "primitives.alc",

+ 2 - 1
performance/test_matrix_gauss_jordan.py

@@ -10,7 +10,8 @@ class TestMatrixGaussJordan(unittest.TestCase):
         self.matrix_gauss_jordan(utils.OPTIMIZATION_LEVEL_BASELINE_JIT)
 
     def matrix_gauss_jordan(self, optimization_level):
-        print(
+        utils.write_perf_to_file(
+            'matrix_gauss_jordan', optimization_level,
             utils.run_perf_test(
                 ["test_harness.alc", "matrix.alc",
                  "matrix_gauss_jordan.alc", "primitives.alc",

+ 7 - 0
performance/utils.py

@@ -240,3 +240,10 @@ def run_perf_test(files, parameters, optimization_level, n_iterations=1):
 def format_output(output):
     """Formats the output of `run_file_to_completion` as a string."""
     return '\n'.join(output)
+
+DEFAULT_PERF_FILE_NAME = 'perf_data.txt'
+
+def write_perf_to_file(test_name, optimization_level, result, file_name=DEFAULT_PERF_FILE_NAME):
+    """Writes performance data to a file."""
+    with open(file_name, "a") as perf_file:
+        perf_file.write('%s:%s %f\n' % (test_name, optimization_level, result))