From 1131359ab8fc43c015f4a72c5aec128bcb85b0da Mon Sep 17 00:00:00 2001 From: Yunlian Jiang Date: Tue, 21 May 2013 11:29:50 -0700 Subject: crosperf: add results_organizer_unittest BUG=None TEST=Unittest passes. Change-Id: I1fda414c1379af40cd1efc13461ed34aafe11847 Reviewed-on: https://gerrit-int.chromium.org/38326 Reviewed-by: Luis Lozano Tested-by: Yunlian Jiang Commit-Queue: Yunlian Jiang --- crosperf/mock_instance.py | 117 +++++++++++++++++++++++++++++++++ crosperf/results_organizer_unittest.py | 117 +++++++++++++++++++++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 crosperf/mock_instance.py create mode 100755 crosperf/results_organizer_unittest.py (limited to 'crosperf') diff --git a/crosperf/mock_instance.py b/crosperf/mock_instance.py new file mode 100644 index 00000000..1cb0f660 --- /dev/null +++ b/crosperf/mock_instance.py @@ -0,0 +1,117 @@ +#!/usr/bin/python + +# 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. + +"""This contains some mock instances for testing.""" + +from autotest_runner import MockAutotestRunner +from benchmark_run import MockBenchmarkRun +from label import MockLabel +from benchmark import Benchmark +from machine_manager import MockMachineManager +from results_cache import MockResultsCache + +label1 = MockLabel("test1", "image1", "/tmp/test_benchmark_run", + "x86-alex", "chromeos-alex1", + image_args="", + image_md5sum="", + cache_dir="") + +label2 = MockLabel("test2", "image2", "/tmp/test_benchmark_run_2", + "x86-alex", "chromeos-alex2", + image_args="", + image_md5sum="", + cache_dir="") + +benchmark1 = Benchmark("benchmark1", "autotest_name_1", + "autotest_args", 2, "", "perf_args", "", "") + +benchmark2 = Benchmark("benchmark2", "autotest_name_2", + "autotest_args", 2, "", "perf_args", "", "") + + +keyval = {} +keyval[0] = {'': 'PASS', + 'milliseconds_1': '1', + 'milliseconds_2': '8', + 'milliseconds_3': '9.2', + 'test{1}': '2', + 'test{2}': '4', + 'ms_1': '2.1', + 'total': '5', + 'bool': 'True'} + +keyval[1] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_2': '5', + 'ms_1': '2.2', + 'total': '6', + 'test{1}': '3', + 'test{2}': '4', + 'bool': 'FALSE'} + +keyval[2] = {'': 'PASS', + 'milliseconds_4': '30', + 'milliseconds_5': '50', + 'ms_1': '2.23', + 'total': '6', + 'test{1}': '5', + 'test{2}': '4', + 'bool': 'FALSE'} + +keyval[3] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_6': '7', + 'ms_1': '2.3', + 'total': '7', + 'test{1}': '2', + 'test{2}': '6', + 'bool': 'FALSE'} + +keyval[4] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2.3', + 'total': '7', + 'test{1}': '2', + 'test{2}': '6', + 'bool': 'TRUE'} + +keyval[5] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2.2', + 'total': '7', + 'test{1}': '2', + 'test{2}': '2', + 'bool': 'TRUE'} + +keyval[6] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2', + 'total': '7', + 'test{1}': '2', + 'test{2}': '4', + 'bool': 'TRUE'} + +keyval[7] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '1', + 'total': '7', + 'test{1}': '1', + 'test{2}': '6', + 'bool': 'TRUE'} + +keyval[8] = {'': 'PASS', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '3.3', + 'total': '7', + 'test{1}': '2', + 'test{2}': '8', + 'bool': 'TRUE'} + diff --git a/crosperf/results_organizer_unittest.py b/crosperf/results_organizer_unittest.py new file mode 100755 index 00000000..8ca650c8 --- /dev/null +++ b/crosperf/results_organizer_unittest.py @@ -0,0 +1,117 @@ +#!/usr/bin/python + +# 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""" + +import unittest + +from benchmark_run import BenchmarkRun +from results_cache import Result +from results_organizer import ResultOrganizer + +import mock_instance + +result = {'benchmark1': [[{'': 'PASS', + 'bool': 'True', + 'milliseconds_1': '1', + 'milliseconds_2': '8', + 'milliseconds_3': '9.2', + 'ms_1': '2.1', + 'total': '5'}, + {'test': '2'}, + {'test': '4'}, + {'': 'PASS', + 'bool': 'FALSE', + 'milliseconds_1': '3', + 'milliseconds_2': '5', + 'ms_1': '2.2', + 'total': '6'}, + {'test': '3'}, + {'test': '4'}], + [{'': 'PASS', + 'bool': 'FALSE', + 'milliseconds_4': '30', + 'milliseconds_5': '50', + 'ms_1': '2.23', + 'total': '6'}, + {'test': '5'}, + {'test': '4'}, + {'': 'PASS', + 'bool': 'FALSE', + 'milliseconds_1': '3', + 'milliseconds_6': '7', + 'ms_1': '2.3', + 'total': '7'}, + {'test': '2'}, + {'test': '6'}]], + 'benchmark2': [[{'': 'PASS', + 'bool': 'TRUE', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2.3', + 'total': '7'}, + {'test': '2'}, + {'test': '6'}, + {'': 'PASS', + 'bool': 'TRUE', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2.2', + 'total': '7'}, + {'test': '2'}, + {'test': '2'}], + [{'': 'PASS', + 'bool': 'TRUE', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '2', + 'total': '7'}, + {'test': '2'}, + {'test': '4'}, + {'': 'PASS', + 'bool': 'TRUE', + 'milliseconds_1': '3', + 'milliseconds_8': '6', + 'ms_1': '1', + 'total': '7'}, + {'test': '1'}, + {'test': '6'}]]} + +class ResultOrganizerTest(unittest.TestCase): + 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, "", "", "", "") + benchmark_runs[1] = BenchmarkRun("b2", benchmarks[0], + labels[0], 2, "", "", "", "") + benchmark_runs[2] = BenchmarkRun("b3", benchmarks[0], + labels[1], 1, "", "", "", "") + benchmark_runs[3] = BenchmarkRun("b4", benchmarks[0], + labels[1], 2, "", "", "", "") + benchmark_runs[4] = BenchmarkRun("b5", benchmarks[1], + labels[0], 1, "", "", "", "") + benchmark_runs[5] = BenchmarkRun("b6", benchmarks[1], + labels[0], 2, "", "", "", "") + benchmark_runs[6] = BenchmarkRun("b7", benchmarks[1], + labels[1], 1, "", "", "", "") + benchmark_runs[7] = BenchmarkRun("b8", benchmarks[1], + labels[1], 2, "", "", "", "") + + i = 0 + for b in benchmark_runs: + b.result = Result(b.label.chromeos_root, "", b.label.name) + b.result.keyvals = mock_instance.keyval[i] + i += 1 + + ro = ResultOrganizer(benchmark_runs, labels, benchmarks) + self.assertEqual(ro.result, result) + +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3