aboutsummaryrefslogtreecommitdiff
path: root/crosperf/generate_report_unittest.py
diff options
context:
space:
mode:
authorZhizhou Yang <zhizhouy@google.com>2017-07-22 01:20:28 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-07-22 01:20:28 +0000
commitec1dfabf71cfe08796ba80ae03f4857b2797f5f9 (patch)
treebf139ee25415cecde142e95791edba3803b2452a /crosperf/generate_report_unittest.py
parent3690e025de8daaed03c4acb02d2b054e5c4c0dd5 (diff)
parentf1a93c225b92dc0059e7d7e2de7c7bd0a493e23d (diff)
downloadtoolchain-utils-pie-cts-release.tar.gz
Merge branch 'aosp/mirror-chromium-master' into update_utils am: 4307f4735e am: 18caef1edd am: 6c551e0d52 am: ddfea1f7e7android-wear-9.0.0_r9android-wear-9.0.0_r8android-wear-9.0.0_r7android-wear-9.0.0_r6android-wear-9.0.0_r5android-wear-9.0.0_r4android-wear-9.0.0_r34android-wear-9.0.0_r33android-wear-9.0.0_r32android-wear-9.0.0_r31android-wear-9.0.0_r30android-wear-9.0.0_r3android-wear-9.0.0_r29android-wear-9.0.0_r28android-wear-9.0.0_r27android-wear-9.0.0_r26android-wear-9.0.0_r25android-wear-9.0.0_r24android-wear-9.0.0_r23android-wear-9.0.0_r22android-wear-9.0.0_r21android-wear-9.0.0_r20android-wear-9.0.0_r2android-wear-9.0.0_r19android-wear-9.0.0_r18android-wear-9.0.0_r17android-wear-9.0.0_r16android-wear-9.0.0_r15android-wear-9.0.0_r14android-wear-9.0.0_r13android-wear-9.0.0_r12android-wear-9.0.0_r11android-wear-9.0.0_r10android-wear-9.0.0_r1android-vts-9.0_r9android-vts-9.0_r8android-vts-9.0_r7android-vts-9.0_r6android-vts-9.0_r5android-vts-9.0_r4android-vts-9.0_r19android-vts-9.0_r18android-vts-9.0_r17android-vts-9.0_r16android-vts-9.0_r15android-vts-9.0_r14android-vts-9.0_r13android-vts-9.0_r12android-vts-9.0_r11android-vts-9.0_r10android-security-9.0.0_r76android-security-9.0.0_r75android-security-9.0.0_r74android-security-9.0.0_r73android-security-9.0.0_r72android-security-9.0.0_r71android-security-9.0.0_r70android-security-9.0.0_r69android-security-9.0.0_r68android-security-9.0.0_r67android-security-9.0.0_r66android-security-9.0.0_r65android-security-9.0.0_r64android-security-9.0.0_r63android-security-9.0.0_r62android-o-mr1-iot-release-1.0.4android-o-mr1-iot-release-1.0.3android-cts-9.0_r9android-cts-9.0_r8android-cts-9.0_r7android-cts-9.0_r6android-cts-9.0_r5android-cts-9.0_r4android-cts-9.0_r3android-cts-9.0_r20android-cts-9.0_r2android-cts-9.0_r19android-cts-9.0_r18android-cts-9.0_r17android-cts-9.0_r16android-cts-9.0_r15android-cts-9.0_r14android-cts-9.0_r13android-cts-9.0_r12android-cts-9.0_r11android-cts-9.0_r10android-cts-9.0_r1android-9.0.0_r9android-9.0.0_r8android-9.0.0_r7android-9.0.0_r61android-9.0.0_r60android-9.0.0_r6android-9.0.0_r59android-9.0.0_r58android-9.0.0_r57android-9.0.0_r56android-9.0.0_r55android-9.0.0_r54android-9.0.0_r53android-9.0.0_r52android-9.0.0_r51android-9.0.0_r50android-9.0.0_r5android-9.0.0_r49android-9.0.0_r48android-9.0.0_r47android-9.0.0_r46android-9.0.0_r45android-9.0.0_r44android-9.0.0_r43android-9.0.0_r42android-9.0.0_r41android-9.0.0_r40android-9.0.0_r39android-9.0.0_r38android-9.0.0_r37android-9.0.0_r36android-9.0.0_r35android-9.0.0_r34android-9.0.0_r33android-9.0.0_r32android-9.0.0_r31android-9.0.0_r30android-9.0.0_r3android-9.0.0_r22android-9.0.0_r21android-9.0.0_r20android-9.0.0_r2android-9.0.0_r19android-9.0.0_r18android-9.0.0_r17android-9.0.0_r16android-9.0.0_r12android-9.0.0_r11android-9.0.0_r10android-9.0.0_r1security-pi-releasepie-vts-releasepie-security-releasepie-s2-releasepie-release-2pie-releasepie-r2-s2-releasepie-r2-s1-releasepie-r2-releasepie-qpr3-s1-releasepie-qpr3-releasepie-qpr3-b-releasepie-qpr2-releasepie-qpr1-s3-releasepie-qpr1-s2-releasepie-qpr1-s1-releasepie-qpr1-releasepie-platform-releasepie-gsipie-dr1-releasepie-dr1-devpie-devpie-cuttlefish-testingpie-cts-releasepie-b4s4-releasepie-b4s4-dev
am: f1a93c225b Change-Id: I60d258ddb8fd0bf9632f1f70c5cdeb3078938059
Diffstat (limited to 'crosperf/generate_report_unittest.py')
-rwxr-xr-xcrosperf/generate_report_unittest.py62
1 files changed, 44 insertions, 18 deletions
diff --git a/crosperf/generate_report_unittest.py b/crosperf/generate_report_unittest.py
index a5d00635..bbb0c0ae 100755
--- a/crosperf/generate_report_unittest.py
+++ b/crosperf/generate_report_unittest.py
@@ -19,8 +19,10 @@ import unittest
import generate_report
import results_report
+
class _ContextualStringIO(StringIO):
"""StringIO that can be used in `with` statements."""
+
def __init__(self, *args):
StringIO.__init__(self, *args)
@@ -33,6 +35,7 @@ class _ContextualStringIO(StringIO):
class GenerateReportTests(unittest.TestCase):
"""Tests for generate_report.py."""
+
def testCountBenchmarks(self):
runs = {
'foo': [[{}, {}, {}], [{}, {}, {}, {}]],
@@ -45,16 +48,33 @@ class GenerateReportTests(unittest.TestCase):
def testCutResultsInPlace(self):
bench_data = {
- 'foo': [[{'a': 1, 'b': 2, 'c': 3}, {'a': 3, 'b': 2.5, 'c': 1}]],
- 'bar': [[{'d': 11, 'e': 12, 'f': 13}]],
- 'baz': [[{'g': 12, 'h': 13}]],
- 'qux': [[{'i': 11}]],
+ 'foo': [[{
+ 'a': 1,
+ 'b': 2,
+ 'c': 3
+ }, {
+ 'a': 3,
+ 'b': 2.5,
+ 'c': 1
+ }]],
+ 'bar': [[{
+ 'd': 11,
+ 'e': 12,
+ 'f': 13
+ }]],
+ 'baz': [[{
+ 'g': 12,
+ 'h': 13
+ }]],
+ 'qux': [[{
+ 'i': 11
+ }]],
}
original_bench_data = copy.deepcopy(bench_data)
max_keys = 2
- results = generate_report.CutResultsInPlace(bench_data, max_keys=max_keys,
- complain_on_update=False)
+ results = generate_report.CutResultsInPlace(
+ bench_data, max_keys=max_keys, complain_on_update=False)
# Cuts should be in-place.
self.assertIs(results, bench_data)
self.assertItemsEqual(original_bench_data.keys(), bench_data.keys())
@@ -68,15 +88,21 @@ class GenerateReportTests(unittest.TestCase):
# sub_keyvals must be a subset of original_keyvals
self.assertDictContainsSubset(sub_keyvals, original_keyvals)
-
def testCutResultsInPlaceLeavesRetval(self):
bench_data = {
- 'foo': [[{'retval': 0, 'a': 1}]],
- 'bar': [[{'retval': 1}]],
- 'baz': [[{'RETVAL': 1}]],
+ 'foo': [[{
+ 'retval': 0,
+ 'a': 1
+ }]],
+ 'bar': [[{
+ 'retval': 1
+ }]],
+ 'baz': [[{
+ 'RETVAL': 1
+ }]],
}
- results = generate_report.CutResultsInPlace(bench_data, max_keys=0,
- complain_on_update=False)
+ results = generate_report.CutResultsInPlace(
+ bench_data, max_keys=0, complain_on_update=False)
# Just reach into results assuming we know it otherwise outputs things
# sanely. If it doesn't, testCutResultsInPlace should give an indication as
# to what, exactly, is broken.
@@ -121,12 +147,12 @@ class GenerateReportTests(unittest.TestCase):
# We only mock print_exc so we don't have exception info printed to stdout.
@mock.patch('generate_report.WriteFile', side_effect=ValueError('Oh noo'))
@mock.patch('traceback.print_exc')
- def testRunActionsRunsAllActionsRegardlessOfExceptions(self, mock_print_exc,
- mock_write_file):
+ def testRunActionsRunsAllActionsRegardlessOfExceptions(
+ self, mock_print_exc, mock_write_file):
actions = [(None, 'json'), (None, 'html'), (None, 'text'), (None, 'email')]
output_prefix = '-'
- ok = generate_report.RunActions(actions, {}, output_prefix, overwrite=False,
- verbose=False)
+ ok = generate_report.RunActions(
+ actions, {}, output_prefix, overwrite=False, verbose=False)
self.assertFalse(ok)
self.assertEqual(mock_write_file.call_count, len(actions))
self.assertEqual(mock_print_exc.call_count, len(actions))
@@ -135,8 +161,8 @@ class GenerateReportTests(unittest.TestCase):
def testRunActionsReturnsTrueIfAllActionsSucceed(self, mock_write_file):
actions = [(None, 'json'), (None, 'html'), (None, 'text')]
output_prefix = '-'
- ok = generate_report.RunActions(actions, {}, output_prefix, overwrite=False,
- verbose=False)
+ ok = generate_report.RunActions(
+ actions, {}, output_prefix, overwrite=False, verbose=False)
self.assertEqual(mock_write_file.call_count, len(actions))
self.assertTrue(ok)