You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
4.7 KiB
164 lines
4.7 KiB
#!/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()
|