#!/usr/bin/env python2 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. # 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. """ from __future__ import print_function import unittest from benchmark_run import BenchmarkRun from results_cache import Result from results_organizer import OrganizeResults import mock_instance 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' }]] } 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()