| #!/usr/bin/env python3 |
| # -*- coding: utf-8 -*- |
| |
| # Copyright 2013 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Testing of ResultsOrganizer |
| |
| We create some labels, benchmark_runs and then create a ResultsOrganizer, |
| after that, we compare the result of ResultOrganizer. |
| """ |
| |
| |
| import unittest |
| |
| from benchmark_run import BenchmarkRun |
| import mock_instance |
| from results_cache import Result |
| from results_organizer import OrganizeResults |
| |
| |
| result = { |
| "benchmark1": [ |
| [ |
| { |
| "": "PASS", |
| "bool": "True", |
| "milliseconds_1": "1", |
| "milliseconds_2": "8", |
| "milliseconds_3": "9.2", |
| "ms_1": "2.1", |
| "total": "5", |
| }, |
| {"": "PASS", "test": "2"}, |
| {"": "PASS", "test": "4"}, |
| { |
| "": "PASS", |
| "bool": "FALSE", |
| "milliseconds_1": "3", |
| "milliseconds_2": "5", |
| "ms_1": "2.2", |
| "total": "6", |
| }, |
| {"": "PASS", "test": "3"}, |
| {"": "PASS", "test": "4"}, |
| ], |
| [ |
| { |
| "": "PASS", |
| "bool": "FALSE", |
| "milliseconds_4": "30", |
| "milliseconds_5": "50", |
| "ms_1": "2.23", |
| "total": "6", |
| }, |
| {"": "PASS", "test": "5"}, |
| {"": "PASS", "test": "4"}, |
| { |
| "": "PASS", |
| "bool": "FALSE", |
| "milliseconds_1": "3", |
| "milliseconds_6": "7", |
| "ms_1": "2.3", |
| "total": "7", |
| }, |
| {"": "PASS", "test": "2"}, |
| {"": "PASS", "test": "6"}, |
| ], |
| ], |
| "benchmark2": [ |
| [ |
| { |
| "": "PASS", |
| "bool": "TRUE", |
| "milliseconds_1": "3", |
| "milliseconds_8": "6", |
| "ms_1": "2.3", |
| "total": "7", |
| }, |
| {"": "PASS", "test": "2"}, |
| {"": "PASS", "test": "6"}, |
| { |
| "": "PASS", |
| "bool": "TRUE", |
| "milliseconds_1": "3", |
| "milliseconds_8": "6", |
| "ms_1": "2.2", |
| "total": "7", |
| }, |
| {"": "PASS", "test": "2"}, |
| {"": "PASS", "test": "2"}, |
| ], |
| [ |
| { |
| "": "PASS", |
| "bool": "TRUE", |
| "milliseconds_1": "3", |
| "milliseconds_8": "6", |
| "ms_1": "2", |
| "total": "7", |
| }, |
| {"": "PASS", "test": "2"}, |
| {"": "PASS", "test": "4"}, |
| { |
| "": "PASS", |
| "bool": "TRUE", |
| "milliseconds_1": "3", |
| "milliseconds_8": "6", |
| "ms_1": "1", |
| "total": "7", |
| }, |
| {"": "PASS", "test": "1"}, |
| {"": "PASS", "test": "6"}, |
| ], |
| ], |
| } # yapf: disable |
| |
| |
| class ResultOrganizerTest(unittest.TestCase): |
| """Test result organizer.""" |
| |
| def testResultOrganizer(self): |
| labels = [mock_instance.label1, mock_instance.label2] |
| benchmarks = [mock_instance.benchmark1, mock_instance.benchmark2] |
| benchmark_runs = [None] * 8 |
| benchmark_runs[0] = BenchmarkRun( |
| "b1", benchmarks[0], labels[0], 1, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[1] = BenchmarkRun( |
| "b2", benchmarks[0], labels[0], 2, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[2] = BenchmarkRun( |
| "b3", benchmarks[0], labels[1], 1, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[3] = BenchmarkRun( |
| "b4", benchmarks[0], labels[1], 2, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[4] = BenchmarkRun( |
| "b5", benchmarks[1], labels[0], 1, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[5] = BenchmarkRun( |
| "b6", benchmarks[1], labels[0], 2, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[6] = BenchmarkRun( |
| "b7", benchmarks[1], labels[1], 1, "", "", "", "average", "", {} |
| ) |
| benchmark_runs[7] = BenchmarkRun( |
| "b8", benchmarks[1], labels[1], 2, "", "", "", "average", "", {} |
| ) |
| |
| i = 0 |
| for b in benchmark_runs: |
| b.result = Result("", b.label, "average", "machine") |
| b.result.keyvals = mock_instance.keyval[i] |
| i += 1 |
| |
| organized = OrganizeResults(benchmark_runs, labels, benchmarks) |
| self.assertEqual(organized, result) |
| |
| |
| if __name__ == "__main__": |
| unittest.main() |