#!/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()