Index: tools/perf/core/perf_data_generator_unittest.py |
diff --git a/tools/perf/core/perf_data_generator_unittest.py b/tools/perf/core/perf_data_generator_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cdfe688b2c9a9114f4471c6f340e7ce1ce1af0ae |
--- /dev/null |
+++ b/tools/perf/core/perf_data_generator_unittest.py |
@@ -0,0 +1,66 @@ |
+# Copyright 2017 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+import unittest |
+ |
+from core import perf_data_generator |
+from core.perf_data_generator import BenchmarkMetadata |
+ |
+ |
+class PerfDataGeneratorTest(unittest.TestCase): |
+ |
+ def testVerifyAllTestsInBenchmarkCsvPassesWithCorrectInput(self): |
+ tests = { |
+ 'AAAAA1 AUTOGENERATED': {}, |
+ 'Android Nexus5 Perf (2)': { |
+ 'scripts': [ |
+ {'name': 'benchmark_name_1'}, |
+ {'name': 'benchmark_name_2'} |
+ ] |
+ }, |
+ 'Linux Perf': { |
+ 'isolated_scripts': [ |
+ {'name': 'benchmark_name_2.reference'}, |
+ {'name': 'benchmark_name_3'} |
+ ] |
+ } |
+ } |
+ benchmarks = { |
+ 'benchmark_name_1': BenchmarkMetadata(None, None), |
+ 'benchmark_name_2': BenchmarkMetadata(None, None), |
+ 'benchmark_name_3': BenchmarkMetadata(None, None) |
+ } |
+ |
+ perf_data_generator.verify_all_tests_in_benchmark_csv(tests, benchmarks) |
+ |
+ |
+ def testVerifyAllTestsInBenchmarkCsvCatchesMismatchedTests(self): |
+ tests = { |
+ 'Android Nexus5 Perf (2)': { |
+ 'scripts': [ |
+ {'name': 'benchmark_name_1'}, |
+ {'name': 'benchmark_name_2'} |
+ ] |
+ } |
+ } |
+ benchmarks = { |
+ 'benchmark_name_2': BenchmarkMetadata(None, None), |
+ 'benchmark_name_3': BenchmarkMetadata(None, None), |
+ } |
+ |
+ with self.assertRaises(AssertionError) as context: |
+ perf_data_generator.verify_all_tests_in_benchmark_csv(tests, benchmarks) |
+ exception = context.exception.message |
+ self.assertTrue('Add benchmark_name_1' in exception) |
+ self.assertTrue('Remove benchmark_name_3' in exception) |
+ |
+ |
+ def testVerifyAllTestsInBenchmarkCsvFindsFakeTest(self): |
+ tests = {'Random fake test': {}} |
+ benchmarks = { |
+ 'benchmark_name_1': BenchmarkMetadata(None, None) |
+ } |
+ |
+ with self.assertRaises(AssertionError) as context: |
+ perf_data_generator.verify_all_tests_in_benchmark_csv(tests, benchmarks) |
+ self.assertTrue('Unknown test' in context.exception.message) |