aboutsummaryrefslogtreecommitdiff
path: root/crosperf/results_cache_unittest.py
diff options
context:
space:
mode:
authorLuis Lozano <llozano@chromium.org>2015-12-15 13:49:30 -0800
committerLuis Lozano <llozano@chromium.org>2015-12-16 17:36:06 +0000
commitf2a3ef46f75d2196a93d3ed27f4d1fcf22b54fbe (patch)
tree185d243c7eed7c7a0db6f0e640746cadc1479ea9 /crosperf/results_cache_unittest.py
parent2a66f70fef907c1cb15229cb58e5129cb620ac98 (diff)
downloadtoolchain-utils-f2a3ef46f75d2196a93d3ed27f4d1fcf22b54fbe.tar.gz
Run pyformat on all the toolchain-utils files.
This gets rid of a lot of lint issues. Ran by doing this: for f in *.py; do echo -n "$f " ; if [ -x $f ]; then pyformat -i --remove_trailing_comma --yapf --force_quote_type=double $f ; else pyformat -i --remove_shebang --remove_trailing_comma --yapf --force_quote_type=double $f ; fi ; done BUG=chromium:567921 TEST=Ran simple crosperf run. Change-Id: I59778835fdaa5f706d2e1765924389f9e97433d1 Reviewed-on: https://chrome-internal-review.googlesource.com/242031 Reviewed-by: Luis Lozano <llozano@chromium.org> Commit-Queue: Luis Lozano <llozano@chromium.org> Tested-by: Luis Lozano <llozano@chromium.org> Reviewed-by: Yunlian Jiang <yunlian@google.com>
Diffstat (limited to 'crosperf/results_cache_unittest.py')
-rwxr-xr-xcrosperf/results_cache_unittest.py480
1 files changed, 287 insertions, 193 deletions
diff --git a/crosperf/results_cache_unittest.py b/crosperf/results_cache_unittest.py
index 790b4718..11746db7 100755
--- a/crosperf/results_cache_unittest.py
+++ b/crosperf/results_cache_unittest.py
@@ -120,12 +120,40 @@ INFO : Test results:
INFO : Elapsed time: 0m18s
"""
-
-keyvals = {'': 'PASS', 'b_stdio_putcgetc__0_': '0.100005711667', 'b_string_strstr___azbycxdwevfugthsirjqkplomn__': '0.0133123556667', 'b_malloc_thread_local__0_': '0.01138439', 'b_string_strlen__0_': '0.044893587', 'b_malloc_sparse__0_': '0.015053784', 'b_string_memset__0_': '0.00275405066667', 'platform_LibCBench': 'PASS', 'b_pthread_uselesslock__0_': '0.0294113346667', 'b_string_strchr__0_': '0.00456903', 'b_pthread_create_serial1__0_': '0.0291785246667', 'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac__': '0.118360778', 'b_string_strstr___aaaaaaaaaaaaaacccccccccccc__': '0.0135694476667', 'b_pthread_createjoin_serial1__0_': '0.031907936', 'b_malloc_thread_stress__0_': '0.0367894733333', 'b_regex_search____a_b_c__d_b__': '0.00165455066667', 'b_malloc_bubble__0_': '0.015066374', 'b_malloc_big2__0_': '0.002951359', 'b_stdio_putcgetc_unlocked__0_': '0.0371443833333', 'b_pthread_createjoin_serial2__0_': '0.043485347', 'b_regex_search___a_25_b__': '0.0496191923333', 'b_utf8_bigbuf__0_': '0.0473772253333', 'b_malloc_big1__0_': '0.00375231466667', 'b_regex_compile____a_b_c__d_b__': '0.00529833933333', 'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaac__': '0.068957325', 'b_malloc_tiny2__0_': '0.000581407333333', 'b_utf8_onebyone__0_': '0.130938538333', 'b_malloc_tiny1__0_': '0.000768474333333', 'b_string_strstr___abcdefghijklmnopqrstuvwxyz__': '0.0134553343333'}
-
+keyvals = {'': 'PASS',
+ 'b_stdio_putcgetc__0_': '0.100005711667',
+ 'b_string_strstr___azbycxdwevfugthsirjqkplomn__': '0.0133123556667',
+ 'b_malloc_thread_local__0_': '0.01138439',
+ 'b_string_strlen__0_': '0.044893587',
+ 'b_malloc_sparse__0_': '0.015053784',
+ 'b_string_memset__0_': '0.00275405066667',
+ 'platform_LibCBench': 'PASS',
+ 'b_pthread_uselesslock__0_': '0.0294113346667',
+ 'b_string_strchr__0_': '0.00456903',
+ 'b_pthread_create_serial1__0_': '0.0291785246667',
+ 'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac__':
+ '0.118360778',
+ 'b_string_strstr___aaaaaaaaaaaaaacccccccccccc__': '0.0135694476667',
+ 'b_pthread_createjoin_serial1__0_': '0.031907936',
+ 'b_malloc_thread_stress__0_': '0.0367894733333',
+ 'b_regex_search____a_b_c__d_b__': '0.00165455066667',
+ 'b_malloc_bubble__0_': '0.015066374',
+ 'b_malloc_big2__0_': '0.002951359',
+ 'b_stdio_putcgetc_unlocked__0_': '0.0371443833333',
+ 'b_pthread_createjoin_serial2__0_': '0.043485347',
+ 'b_regex_search___a_25_b__': '0.0496191923333',
+ 'b_utf8_bigbuf__0_': '0.0473772253333',
+ 'b_malloc_big1__0_': '0.00375231466667',
+ 'b_regex_compile____a_b_c__d_b__': '0.00529833933333',
+ 'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaac__': '0.068957325',
+ 'b_malloc_tiny2__0_': '0.000581407333333',
+ 'b_utf8_onebyone__0_': '0.130938538333',
+ 'b_malloc_tiny1__0_': '0.000768474333333',
+ 'b_string_strstr___abcdefghijklmnopqrstuvwxyz__': '0.0134553343333'}
TMP_DIR1 = '/tmp/tmpAbcXyz'
+
class MockResult(Result):
def __init__(self, logger, label, logging_level, machine):
@@ -141,24 +169,22 @@ class MockResult(Result):
class ResultTest(unittest.TestCase):
mock_label = MockLabel('mock_label', 'chromeos_image', '/tmp', 'lumpy',
- 'remote', 'image_args', 'cache_dir', 'average',
- 'gcc', None)
+ 'remote', 'image_args', 'cache_dir', 'average', 'gcc',
+ None)
mock_logger = mock.Mock(spec=logger.Logger)
mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
def testCreateFromRun(self):
result = MockResult.CreateFromRun(logger.GetLogger(), 'average',
- self.mock_label, 'remote1',
- OUTPUT, error, 0, True, 0)
+ self.mock_label, 'remote1', OUTPUT, error,
+ 0, True, 0)
self.assertEqual(result.keyvals, keyvals)
self.assertEqual(result.chroot_results_dir,
'/tmp/test_that.PO1234567/platform_LibCBench')
self.assertEqual(result.results_dir,
- '/tmp/chroot/tmp/test_that.PO1234567/platform_LibCBench')
+ '/tmp/chroot/tmp/test_that.PO1234567/platform_LibCBench')
self.assertEqual(result.retval, 0)
-
-
def setUp(self):
self.result = Result(self.mock_logger, self.mock_label, 'average',
self.mock_cmd_exec)
@@ -204,8 +230,7 @@ class ResultTest(unittest.TestCase):
mock_copyfiles.return_value = 1
self.assertRaises(Exception, self.result._CopyFilesTo, dest_dir, files)
-
- @mock.patch.object (Result, '_CopyFilesTo')
+ @mock.patch.object(Result, '_CopyFilesTo')
def test_copy_results_to(self, mock_CopyFilesTo):
perf_data_files = ['/tmp/perf.data.0', '/tmp/perf.data.1',
'/tmp/perf.data.2']
@@ -224,7 +249,6 @@ class ResultTest(unittest.TestCase):
self.assertEqual(mock_CopyFilesTo.call_args_list[1][0],
('/tmp/results/', perf_report_files))
-
def test_get_new_keyvals(self):
kv_dict = {}
@@ -235,51 +259,73 @@ class ResultTest(unittest.TestCase):
self.result._GetDataMeasurementsFiles = FakeGetDataMeasurementsFiles
kv_dict2, udict = self.result._GetNewKeyvals(kv_dict)
self.assertEqual(kv_dict2,
- {u'Box2D__Box2D': 4775, u'Mandreel__Mandreel': 6620,
- u'Gameboy__Gameboy': 9901, u'Crypto__Crypto': 8737,
- u'telemetry_page_measurement_results__num_errored': 0,
- u'telemetry_page_measurement_results__num_failed': 0,
- u'PdfJS__PdfJS': 6455, u'Total__Score': 7918,
- u'EarleyBoyer__EarleyBoyer': 14340,
- u'MandreelLatency__MandreelLatency': 5188,
- u'CodeLoad__CodeLoad': 6271, u'DeltaBlue__DeltaBlue': 14401,
- u'Typescript__Typescript': 9815,
- u'SplayLatency__SplayLatency': 7653, u'zlib__zlib': 16094,
- u'Richards__Richards': 10358, u'RegExp__RegExp': 1765,
- u'NavierStokes__NavierStokes': 9815, u'Splay__Splay': 4425,
- u'RayTrace__RayTrace': 16600})
- self.assertEqual(udict,
- {u'Box2D__Box2D': u'score', u'Mandreel__Mandreel': u'score',
- u'Gameboy__Gameboy': u'score', u'Crypto__Crypto': u'score',
- u'telemetry_page_measurement_results__num_errored': u'count',
- u'telemetry_page_measurement_results__num_failed': u'count',
- u'PdfJS__PdfJS': u'score', u'Total__Score': u'score',
- u'EarleyBoyer__EarleyBoyer': u'score',
- u'MandreelLatency__MandreelLatency': u'score',
- u'CodeLoad__CodeLoad': u'score',
- u'DeltaBlue__DeltaBlue': u'score',
- u'Typescript__Typescript': u'score',
- u'SplayLatency__SplayLatency': u'score', u'zlib__zlib': u'score',
- u'Richards__Richards': u'score', u'RegExp__RegExp': u'score',
- u'NavierStokes__NavierStokes': u'score',
- u'Splay__Splay': u'score', u'RayTrace__RayTrace': u'score'})
-
+ {u'Box2D__Box2D': 4775,
+ u'Mandreel__Mandreel': 6620,
+ u'Gameboy__Gameboy': 9901,
+ u'Crypto__Crypto': 8737,
+ u'telemetry_page_measurement_results__num_errored': 0,
+ u'telemetry_page_measurement_results__num_failed': 0,
+ u'PdfJS__PdfJS': 6455,
+ u'Total__Score': 7918,
+ u'EarleyBoyer__EarleyBoyer': 14340,
+ u'MandreelLatency__MandreelLatency': 5188,
+ u'CodeLoad__CodeLoad': 6271,
+ u'DeltaBlue__DeltaBlue': 14401,
+ u'Typescript__Typescript': 9815,
+ u'SplayLatency__SplayLatency': 7653,
+ u'zlib__zlib': 16094,
+ u'Richards__Richards': 10358,
+ u'RegExp__RegExp': 1765,
+ u'NavierStokes__NavierStokes': 9815,
+ u'Splay__Splay': 4425,
+ u'RayTrace__RayTrace': 16600})
+ self.assertEqual(
+ udict, {u'Box2D__Box2D': u'score',
+ u'Mandreel__Mandreel': u'score',
+ u'Gameboy__Gameboy': u'score',
+ u'Crypto__Crypto': u'score',
+ u'telemetry_page_measurement_results__num_errored': u'count',
+ u'telemetry_page_measurement_results__num_failed': u'count',
+ u'PdfJS__PdfJS': u'score',
+ u'Total__Score': u'score',
+ u'EarleyBoyer__EarleyBoyer': u'score',
+ u'MandreelLatency__MandreelLatency': u'score',
+ u'CodeLoad__CodeLoad': u'score',
+ u'DeltaBlue__DeltaBlue': u'score',
+ u'Typescript__Typescript': u'score',
+ u'SplayLatency__SplayLatency': u'score',
+ u'zlib__zlib': u'score',
+ u'Richards__Richards': u'score',
+ u'RegExp__RegExp': u'score',
+ u'NavierStokes__NavierStokes': u'score',
+ u'Splay__Splay': u'score',
+ u'RayTrace__RayTrace': u'score'})
def test_append_telemetry_units(self):
- kv_dict = {u'Box2D__Box2D': 4775, u'Mandreel__Mandreel': 6620,
- u'Gameboy__Gameboy': 9901, u'Crypto__Crypto': 8737,
- u'PdfJS__PdfJS': 6455, u'Total__Score': 7918,
+ kv_dict = {u'Box2D__Box2D': 4775,
+ u'Mandreel__Mandreel': 6620,
+ u'Gameboy__Gameboy': 9901,
+ u'Crypto__Crypto': 8737,
+ u'PdfJS__PdfJS': 6455,
+ u'Total__Score': 7918,
u'EarleyBoyer__EarleyBoyer': 14340,
u'MandreelLatency__MandreelLatency': 5188,
- u'CodeLoad__CodeLoad': 6271, u'DeltaBlue__DeltaBlue': 14401,
+ u'CodeLoad__CodeLoad': 6271,
+ u'DeltaBlue__DeltaBlue': 14401,
u'Typescript__Typescript': 9815,
- u'SplayLatency__SplayLatency': 7653, u'zlib__zlib': 16094,
- u'Richards__Richards': 10358, u'RegExp__RegExp': 1765,
- u'NavierStokes__NavierStokes': 9815, u'Splay__Splay': 4425,
+ u'SplayLatency__SplayLatency': 7653,
+ u'zlib__zlib': 16094,
+ u'Richards__Richards': 10358,
+ u'RegExp__RegExp': 1765,
+ u'NavierStokes__NavierStokes': 9815,
+ u'Splay__Splay': 4425,
u'RayTrace__RayTrace': 16600}
- units_dict = {u'Box2D__Box2D': u'score', u'Mandreel__Mandreel': u'score',
- u'Gameboy__Gameboy': u'score', u'Crypto__Crypto': u'score',
- u'PdfJS__PdfJS': u'score', u'Total__Score': u'score',
+ units_dict = {u'Box2D__Box2D': u'score',
+ u'Mandreel__Mandreel': u'score',
+ u'Gameboy__Gameboy': u'score',
+ u'Crypto__Crypto': u'score',
+ u'PdfJS__PdfJS': u'score',
+ u'Total__Score': u'score',
u'EarleyBoyer__EarleyBoyer': u'score',
u'MandreelLatency__MandreelLatency': u'score',
u'CodeLoad__CodeLoad': u'score',
@@ -287,9 +333,11 @@ class ResultTest(unittest.TestCase):
u'Typescript__Typescript': u'score',
u'SplayLatency__SplayLatency': u'score',
u'zlib__zlib': u'score',
- u'Richards__Richards': u'score', u'RegExp__RegExp': u'score',
+ u'Richards__Richards': u'score',
+ u'RegExp__RegExp': u'score',
u'NavierStokes__NavierStokes': u'score',
- u'Splay__Splay': u'score', u'RayTrace__RayTrace': u'score'}
+ u'Splay__Splay': u'score',
+ u'RayTrace__RayTrace': u'score'}
results_dict = self.result._AppendTelemetryUnits(kv_dict, units_dict)
self.assertEqual(results_dict,
@@ -312,11 +360,10 @@ class ResultTest(unittest.TestCase):
u'RayTrace__RayTrace': [16600, u'score'],
u'NavierStokes__NavierStokes': [9815, u'score']})
-
- @mock.patch.object (misc, 'GetInsideChrootPath')
- @mock.patch.object (tempfile, 'mkdtemp')
- @mock.patch.object (command_executer.CommandExecuter, 'RunCommand')
- @mock.patch.object (command_executer.CommandExecuter, 'ChrootRunCommand')
+ @mock.patch.object(misc, 'GetInsideChrootPath')
+ @mock.patch.object(tempfile, 'mkdtemp')
+ @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+ @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
def test_get_keyvals(self, mock_chrootruncmd, mock_runcmd, mock_mkdtemp,
mock_getpath):
@@ -334,16 +381,14 @@ class ResultTest(unittest.TestCase):
def FakeGetNewKeyvals(kv_dict):
self.kv_dict = kv_dict
self.call_GetNewKeyvals = True
- return_kvdict = { 'first_time' : 680, 'Total' : 10}
- return_udict = { 'first_time' : 'ms', 'Total' : 'score'}
+ return_kvdict = {'first_time': 680, 'Total': 10}
+ return_udict = {'first_time': 'ms', 'Total': 'score'}
return return_kvdict, return_udict
-
mock_mkdtemp.return_value = TMP_DIR1
mock_chrootruncmd.return_value = ['',
('%s,PASS\n%s/telemetry_Crosperf,PASS\n')
- % (TMP_DIR1, TMP_DIR1),
- '']
+ % (TMP_DIR1, TMP_DIR1), '']
mock_getpath.return_value = TMP_DIR1
self.result._ce.ChrootRunCommand = mock_chrootruncmd
self.result._ce.RunCommand = mock_runcmd
@@ -354,26 +399,22 @@ class ResultTest(unittest.TestCase):
# Test 1. no self._temp_dir.
res = self.result._GetKeyvals(True)
self.assertTrue(self.call_GetNewKeyvals)
- self.assertEqual(self.kv_dict, { '': 'PASS', 'telemetry_Crosperf': 'PASS' })
+ self.assertEqual(self.kv_dict, {'': 'PASS', 'telemetry_Crosperf': 'PASS'})
self.assertEqual(mock_runcmd.call_count, 1)
self.assertEqual(mock_runcmd.call_args_list[0][0],
('cp -r /tmp/test_that_resultsNmq/* %s' % TMP_DIR1,))
self.assertEqual(mock_chrootruncmd.call_count, 1)
- self.assertEqual(mock_chrootruncmd.call_args_list[0][0],
- ('/tmp',
- ('python generate_test_report --no-color --csv %s') %
- TMP_DIR1))
+ self.assertEqual(mock_chrootruncmd.call_args_list[0][0], (
+ '/tmp', ('python generate_test_report --no-color --csv %s') % TMP_DIR1))
self.assertEqual(mock_getpath.call_count, 1)
self.assertEqual(mock_mkdtemp.call_count, 1)
self.assertEqual(res, {'Total': [10, 'score'], 'first_time': [680, 'ms']})
-
# Test 2. self._temp_dir
reset()
mock_chrootruncmd.return_value = ['',
('/tmp/tmpJCajRG,PASS\n/tmp/tmpJCajRG/'
- 'telemetry_Crosperf,PASS\n'),
- '']
+ 'telemetry_Crosperf,PASS\n'), '']
mock_getpath.return_value = '/tmp/tmpJCajRG'
self.result._temp_dir = '/tmp/tmpJCajRG'
res = self.result._GetKeyvals(True)
@@ -381,7 +422,7 @@ class ResultTest(unittest.TestCase):
self.assertEqual(mock_mkdtemp.call_count, 0)
self.assertEqual(mock_chrootruncmd.call_count, 1)
self.assertTrue(self.call_GetNewKeyvals)
- self.assertEqual(self.kv_dict, { '': 'PASS', 'telemetry_Crosperf': 'PASS' })
+ self.assertEqual(self.kv_dict, {'': 'PASS', 'telemetry_Crosperf': 'PASS'})
self.assertEqual(res, {'Total': [10, 'score'], 'first_time': [680, 'ms']})
# Test 3. suite != telemetry_Crosperf. Normally this would be for
@@ -392,8 +433,7 @@ class ResultTest(unittest.TestCase):
reset()
self.result.suite = ''
res = self.result._GetKeyvals(True)
- self.assertEqual(res, {'Total': 10, 'first_time': 680 })
-
+ self.assertEqual(res, {'Total': 10, 'first_time': 680})
def test_get_results_dir(self):
@@ -402,11 +442,9 @@ class ResultTest(unittest.TestCase):
self.result.out = OUTPUT
resdir = self.result._GetResultsDir()
- self.assertEqual(resdir,
- '/tmp/test_that.PO1234567/platform_LibCBench')
-
+ self.assertEqual(resdir, '/tmp/test_that.PO1234567/platform_LibCBench')
- @mock.patch.object (command_executer.CommandExecuter, 'RunCommand')
+ @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
def test_find_files_in_results_dir(self, mock_runcmd):
self.result.results_dir = None
@@ -427,9 +465,7 @@ class ResultTest(unittest.TestCase):
self.assertRaises(Exception, self.result._FindFilesInResultsDir,
'-name perf.data')
-
-
- @mock.patch.object (Result, '_FindFilesInResultsDir')
+ @mock.patch.object(Result, '_FindFilesInResultsDir')
def test_get_perf_data_files(self, mock_findfiles):
self.args = None
@@ -439,7 +475,6 @@ class ResultTest(unittest.TestCase):
self.assertEqual(res, ['line1', 'line1'])
self.assertEqual(mock_findfiles.call_args_list[0][0], ('-name perf.data',))
-
def test_get_perf_report_files(self):
self.args = None
@@ -452,7 +487,6 @@ class ResultTest(unittest.TestCase):
self.assertEqual(res, ['line1', 'line1'])
self.assertEqual(self.args, '-name perf.data.report')
-
def test_get_data_measurement_files(self):
self.args = None
@@ -465,9 +499,8 @@ class ResultTest(unittest.TestCase):
self.assertEqual(res, ['line1', 'line1'])
self.assertEqual(self.args, '-name perf_measurements')
-
- @mock.patch.object (misc, 'GetInsideChrootPath')
- @mock.patch.object (command_executer.CommandExecuter, 'ChrootRunCommand')
+ @mock.patch.object(misc, 'GetInsideChrootPath')
+ @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
def test_generate_perf_report_files(self, mock_chrootruncmd, mock_getpath):
fake_file = '/usr/chromeos/chroot/tmp/results/fake_file'
self.result.perf_data_files = ['/tmp/results/perf.data']
@@ -483,9 +516,7 @@ class ResultTest(unittest.TestCase):
'--kallsyms /build/lumpy/boot/System.map-* -i '
'%s --stdio > %s') % (fake_file, fake_file)))
-
-
- @mock.patch.object (misc, 'GetOutsideChrootPath')
+ @mock.patch.object(misc, 'GetOutsideChrootPath')
def test_populate_from_run(self, mock_getpath):
def FakeGetResultsDir():
@@ -527,9 +558,9 @@ class ResultTest(unittest.TestCase):
def FakeGetKeyvals(show_all):
if show_all:
- return { 'first_time' : 680, 'Total' : 10}
+ return {'first_time': 680, 'Total': 10}
else:
- return { 'Total' : 10}
+ return {'Total': 10}
def FakeGatherPerfResults():
self.callGatherPerfResults = True
@@ -543,18 +574,17 @@ class ResultTest(unittest.TestCase):
self.result._ProcessResults(True)
self.assertTrue(self.callGatherPerfResults)
self.assertEqual(len(self.result.keyvals), 3)
- self.assertEqual(self.result.keyvals,
- { 'first_time' : 680, 'Total' : 10, 'retval' : 0 })
+ self.assertEqual(self.result.keyvals, {'first_time': 680,
+ 'Total': 10,
+ 'retval': 0})
self.result.retval = 1
self.result._ProcessResults(False)
self.assertEqual(len(self.result.keyvals), 2)
- self.assertEqual(self.result.keyvals,
- { 'Total' : 10, 'retval' : 1 })
-
+ self.assertEqual(self.result.keyvals, {'Total': 10, 'retval': 1})
- @mock.patch.object (misc, 'GetInsideChrootPath')
- @mock.patch.object (command_executer.CommandExecuter, 'ChrootRunCommand')
+ @mock.patch.object(misc, 'GetInsideChrootPath')
+ @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
def test_populate_from_cache_dir(self, mock_runchrootcmd, mock_getpath):
def FakeMkdtemp(dir=''):
@@ -566,8 +596,7 @@ class ResultTest(unittest.TestCase):
self.result._ce.ChrootRunCommand = mock_runchrootcmd
mock_runchrootcmd.return_value = ['',
('%s,PASS\n%s/\telemetry_Crosperf,PASS\n')
- % (TMP_DIR1, TMP_DIR1),
- '']
+ % (TMP_DIR1, TMP_DIR1), '']
mock_getpath.return_value = TMP_DIR1
self.tmpdir = tempfile.mkdtemp()
save_real_mkdtemp = tempfile.mkdtemp
@@ -575,54 +604,47 @@ class ResultTest(unittest.TestCase):
self.result._PopulateFromCacheDir(cache_dir, True, 'sunspider',
'telemetry_Crosperf')
- self.assertEqual(self.result.keyvals,
- {u'Total__Total': [444.0, u'ms'],
- u'regexp-dna__regexp-dna': [16.2, u'ms'],
- u'telemetry_page_measurement_results__num_failed':
- [0, u'count'],
- u'telemetry_page_measurement_results__num_errored':
- [0, u'count'],
- u'string-fasta__string-fasta': [23.2, u'ms'],
- u'crypto-sha1__crypto-sha1': [11.6, u'ms'],
- u'bitops-3bit-bits-in-byte__bitops-3bit-bits-in-byte':
- [3.2, u'ms'],
- u'access-nsieve__access-nsieve': [7.9, u'ms'],
- u'bitops-nsieve-bits__bitops-nsieve-bits': [9.4, u'ms'],
- u'string-validate-input__string-validate-input':
- [19.3, u'ms'],
- u'3d-raytrace__3d-raytrace': [24.7, u'ms'],
- u'3d-cube__3d-cube': [28.0, u'ms'],
- u'string-unpack-code__string-unpack-code': [46.7, u'ms'],
- u'date-format-tofte__date-format-tofte': [26.3, u'ms'],
- u'math-partial-sums__math-partial-sums': [22.0, u'ms'],
- '\telemetry_Crosperf': ['PASS', ''],
- u'crypto-aes__crypto-aes': [15.2, u'ms'],
- u'bitops-bitwise-and__bitops-bitwise-and': [8.4, u'ms'],
- u'crypto-md5__crypto-md5': [10.5, u'ms'],
- u'string-tagcloud__string-tagcloud': [52.8, u'ms'],
- u'access-nbody__access-nbody': [8.5, u'ms'],
- 'retval': 0,
- u'math-spectral-norm__math-spectral-norm': [6.6, u'ms'],
- u'math-cordic__math-cordic': [8.7, u'ms'],
- u'access-binary-trees__access-binary-trees': [4.5, u'ms'],
- u'controlflow-recursive__controlflow-recursive':
- [4.4, u'ms'],
- u'access-fannkuch__access-fannkuch': [17.8, u'ms'],
- u'string-base64__string-base64': [16.0, u'ms'],
- u'date-format-xparb__date-format-xparb': [20.9, u'ms'],
- u'3d-morph__3d-morph': [22.1, u'ms'],
- u'bitops-bits-in-byte__bitops-bits-in-byte': [9.1, u'ms']
- })
-
+ self.assertEqual(
+ self.result.keyvals,
+ {u'Total__Total': [444.0, u'ms'],
+ u'regexp-dna__regexp-dna': [16.2, u'ms'],
+ u'telemetry_page_measurement_results__num_failed': [0, u'count'],
+ u'telemetry_page_measurement_results__num_errored': [0, u'count'],
+ u'string-fasta__string-fasta': [23.2, u'ms'],
+ u'crypto-sha1__crypto-sha1': [11.6, u'ms'],
+ u'bitops-3bit-bits-in-byte__bitops-3bit-bits-in-byte': [3.2, u'ms'],
+ u'access-nsieve__access-nsieve': [7.9, u'ms'],
+ u'bitops-nsieve-bits__bitops-nsieve-bits': [9.4, u'ms'],
+ u'string-validate-input__string-validate-input': [19.3, u'ms'],
+ u'3d-raytrace__3d-raytrace': [24.7, u'ms'],
+ u'3d-cube__3d-cube': [28.0, u'ms'],
+ u'string-unpack-code__string-unpack-code': [46.7, u'ms'],
+ u'date-format-tofte__date-format-tofte': [26.3, u'ms'],
+ u'math-partial-sums__math-partial-sums': [22.0, u'ms'],
+ '\telemetry_Crosperf': ['PASS', ''],
+ u'crypto-aes__crypto-aes': [15.2, u'ms'],
+ u'bitops-bitwise-and__bitops-bitwise-and': [8.4, u'ms'],
+ u'crypto-md5__crypto-md5': [10.5, u'ms'],
+ u'string-tagcloud__string-tagcloud': [52.8, u'ms'],
+ u'access-nbody__access-nbody': [8.5, u'ms'],
+ 'retval': 0,
+ u'math-spectral-norm__math-spectral-norm': [6.6, u'ms'],
+ u'math-cordic__math-cordic': [8.7, u'ms'],
+ u'access-binary-trees__access-binary-trees': [4.5, u'ms'],
+ u'controlflow-recursive__controlflow-recursive': [4.4, u'ms'],
+ u'access-fannkuch__access-fannkuch': [17.8, u'ms'],
+ u'string-base64__string-base64': [16.0, u'ms'],
+ u'date-format-xparb__date-format-xparb': [20.9, u'ms'],
+ u'3d-morph__3d-morph': [22.1, u'ms'],
+ u'bitops-bits-in-byte__bitops-bits-in-byte': [9.1, u'ms']})
# Clean up after test.
tempfile.mkdtemp = save_real_mkdtemp
command = 'rm -Rf %s' % self.tmpdir
self.result._ce.RunCommand(command)
-
- @mock.patch.object (misc, 'GetRoot')
- @mock.patch.object (command_executer.CommandExecuter, 'RunCommand')
+ @mock.patch.object(misc, 'GetRoot')
+ @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
def test_cleanup(self, mock_runcmd, mock_getroot):
# Test 1. 'rm_chroot_tmp' is True; self.results_dir exists;
@@ -673,9 +695,8 @@ class ResultTest(unittest.TestCase):
self.assertEqual(mock_getroot.call_count, 0)
self.assertEqual(mock_runcmd.call_count, 0)
-
- @mock.patch.object (misc, 'GetInsideChrootPath')
- @mock.patch.object (command_executer.CommandExecuter, 'ChrootRunCommand')
+ @mock.patch.object(misc, 'GetInsideChrootPath')
+ @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
def test_store_to_cache_dir(self, mock_chrootruncmd, mock_getpath):
def FakeMkdtemp(dir=''):
@@ -728,19 +749,102 @@ class ResultTest(unittest.TestCase):
self.result._ce.RunCommand(command)
-TELEMETRY_RESULT_KEYVALS = {'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html math-cordic (ms)': '11.4', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html access-nbody (ms)': '6.9', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html access-fannkuch (ms)': '26.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html math-spectral-norm (ms)': '6.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html bitops-nsieve-bits (ms)': '9.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html math-partial-sums (ms)': '32.8', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html regexp-dna (ms)': '16.1', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html 3d-cube (ms)': '42.7', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html crypto-md5 (ms)': '10.8', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html crypto-sha1 (ms)': '12.4', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html string-tagcloud (ms)': '47.2', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html string-fasta (ms)': '36.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html access-binary-trees (ms)': '7.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html date-format-xparb (ms)': '138.1', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html crypto-aes (ms)': '19.2', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html Total (ms)': '656.5', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html string-base64 (ms)': '17.5', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html string-validate-input (ms)': '24.8', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html 3d-raytrace (ms)': '28.7', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html controlflow-recursive (ms)': '5.3', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html bitops-bits-in-byte (ms)': '9.8', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html 3d-morph (ms)': '50.2', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html bitops-bitwise-and (ms)': '8.8', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html access-nsieve (ms)': '8.6', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html date-format-tofte (ms)': '31.2', 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html bitops-3bit-bits-in-byte (ms)': '3.5', 'retval': 0, 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html string-unpack-code (ms)': '45.0'}
+TELEMETRY_RESULT_KEYVALS = {
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'math-cordic (ms)':
+ '11.4',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'access-nbody (ms)':
+ '6.9',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'access-fannkuch (ms)':
+ '26.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'math-spectral-norm (ms)':
+ '6.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'bitops-nsieve-bits (ms)':
+ '9.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'math-partial-sums (ms)':
+ '32.8',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'regexp-dna (ms)':
+ '16.1',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ '3d-cube (ms)':
+ '42.7',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'crypto-md5 (ms)':
+ '10.8',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'crypto-sha1 (ms)':
+ '12.4',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'string-tagcloud (ms)':
+ '47.2',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'string-fasta (ms)':
+ '36.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'access-binary-trees (ms)':
+ '7.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'date-format-xparb (ms)':
+ '138.1',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'crypto-aes (ms)':
+ '19.2',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'Total (ms)':
+ '656.5',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'string-base64 (ms)':
+ '17.5',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'string-validate-input (ms)':
+ '24.8',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ '3d-raytrace (ms)':
+ '28.7',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'controlflow-recursive (ms)':
+ '5.3',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'bitops-bits-in-byte (ms)':
+ '9.8',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ '3d-morph (ms)':
+ '50.2',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'bitops-bitwise-and (ms)':
+ '8.8',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'access-nsieve (ms)':
+ '8.6',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'date-format-tofte (ms)':
+ '31.2',
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'bitops-3bit-bits-in-byte (ms)':
+ '3.5',
+ 'retval': 0,
+ 'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+ 'string-unpack-code (ms)':
+ '45.0'
+}
PURE_TELEMETRY_OUTPUT = """page_name,3d-cube (ms),3d-morph (ms),3d-raytrace (ms),Total (ms),access-binary-trees (ms),access-fannkuch (ms),access-nbody (ms),access-nsieve (ms),bitops-3bit-bits-in-byte (ms),bitops-bits-in-byte (ms),bitops-bitwise-and (ms),bitops-nsieve-bits (ms),controlflow-recursive (ms),crypto-aes (ms),crypto-md5 (ms),crypto-sha1 (ms),date-format-tofte (ms),date-format-xparb (ms),math-cordic (ms),math-partial-sums (ms),math-spectral-norm (ms),regexp-dna (ms),string-base64 (ms),string-fasta (ms),string-tagcloud (ms),string-unpack-code (ms),string-validate-input (ms)\r\nhttp://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html,42.7,50.2,28.7,656.5,7.3,26.3,6.9,8.6,3.5,9.8,8.8,9.3,5.3,19.2,10.8,12.4,31.2,138.1,11.4,32.8,6.3,16.1,17.5,36.3,47.2,45.0,24.8\r\n"""
+
class TelemetryResultTest(unittest.TestCase):
mock_logger = mock.Mock(spec=logger.Logger)
mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
mock_label = MockLabel('mock_label', 'chromeos_image', '/tmp', 'lumpy',
- 'remote', 'image_args', 'cache_dir', 'average',
- 'gcc', None)
- mock_machine = machine_manager.MockCrosMachine('falco.cros',
- '/tmp/chromeos',
+ 'remote', 'image_args', 'cache_dir', 'average', 'gcc',
+ None)
+ mock_machine = machine_manager.MockCrosMachine('falco.cros', '/tmp/chromeos',
'average')
def test_populate_from_run(self):
@@ -749,8 +853,8 @@ class TelemetryResultTest(unittest.TestCase):
self.callFakeProcessResults = True
self.callFakeProcessResults = False
- self.result = TelemetryResult(self.mock_logger, self.mock_label,
- 'average', self.mock_cmd_exec)
+ self.result = TelemetryResult(self.mock_logger, self.mock_label, 'average',
+ self.mock_cmd_exec)
self.result._ProcessResults = FakeProcessResults
self.result._PopulateFromRun(OUTPUT, error, 3, False, 'fake_test',
'telemetry_Crosperf')
@@ -759,11 +863,10 @@ class TelemetryResultTest(unittest.TestCase):
self.assertEqual(self.result.err, error)
self.assertEqual(self.result.retval, 3)
-
def test_populate_from_cache_dir_and_process_results(self):
- self.result = TelemetryResult(self.mock_logger, self.mock_label,
- 'average', self.mock_machine)
+ self.result = TelemetryResult(self.mock_logger, self.mock_label, 'average',
+ self.mock_machine)
current_path = os.getcwd()
cache_dir = os.path.join(current_path,
'test_cache/test_puretelemetry_input')
@@ -778,14 +881,14 @@ class ResultsCacheTest(unittest.TestCase):
mock_logger = mock.Mock(spec=logger.Logger)
mock_label = MockLabel('mock_label', 'chromeos_image', '/tmp', 'lumpy',
- 'remote', 'image_args', 'cache_dir', 'average',
- 'gcc', None)
+ 'remote', 'image_args', 'cache_dir', 'average', 'gcc',
+ None)
+
def setUp(self):
self.results_cache = ResultsCache()
mock_machine = machine_manager.MockCrosMachine('falco.cros',
- '/tmp/chromeos',
- 'average')
+ '/tmp/chromeos', 'average')
mock_mm = machine_manager.MockMachineManager('/tmp/chromeos_root', 0,
'average')
@@ -794,9 +897,9 @@ class ResultsCacheTest(unittest.TestCase):
self.results_cache.Init(self.mock_label.chromeos_image,
self.mock_label.chromeos_root,
'sunspider',
- 1, # benchmark_run.iteration,
- '', # benchmark_run.test_args,
- '', # benchmark_run.profiler_args,
+ 1, # benchmark_run.iteration,
+ '', # benchmark_run.test_args,
+ '', # benchmark_run.profiler_args,
mock_mm,
mock_machine,
self.mock_label.board,
@@ -805,24 +908,20 @@ class ResultsCacheTest(unittest.TestCase):
self.mock_logger,
'average',
self.mock_label,
- '', # benchmark_run.share_cache
+ '', # benchmark_run.share_cache
'telemetry_Crosperf',
- True, # benchmark_run.show_all_results
- False) # benchmark_run.run_local
-
+ True, # benchmark_run.show_all_results
+ False) # benchmark_run.run_local
- @mock.patch.object (image_checksummer.ImageChecksummer, 'Checksum')
+ @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
def test_get_cache_dir_for_write(self, mock_checksum):
def FakeGetMachines(label):
- m1 = machine_manager.MockCrosMachine('lumpy1.cros',
- self.results_cache.chromeos_root,
- 'average')
- m2 = machine_manager.MockCrosMachine('lumpy2.cros',
- self.results_cache.chromeos_root,
- 'average')
- return [m1, m2]
-
+ m1 = machine_manager.MockCrosMachine(
+ 'lumpy1.cros', self.results_cache.chromeos_root, 'average')
+ m2 = machine_manager.MockCrosMachine(
+ 'lumpy2.cros', self.results_cache.chromeos_root, 'average')
+ return [m1, m2]
mock_checksum.return_value = 'FakeImageChecksumabc123'
self.results_cache.machine_manager.GetMachines = FakeGetMachines
@@ -841,7 +940,6 @@ class ResultsCacheTest(unittest.TestCase):
'abc987__6')
self.assertEqual(result_path, comp_path)
-
def test_form_cache_dir(self):
# This is very similar to the previous test (_FormCacheDir is called
# from _GetCacheDirForWrite).
@@ -856,21 +954,17 @@ class ResultsCacheTest(unittest.TestCase):
comp_path = os.path.join(os.getcwd(), 'cache_dir', test_dirname)
self.assertEqual(path1, comp_path)
-
- @mock.patch.object (image_checksummer.ImageChecksummer, 'Checksum')
+ @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
def test_get_cache_key_list(self, mock_checksum):
# This tests the mechanism that generates the various pieces of the
# cache directory name, based on various conditions.
def FakeGetMachines(label):
- m1 = machine_manager.MockCrosMachine('lumpy1.cros',
- self.results_cache.chromeos_root,
- 'average')
- m2 = machine_manager.MockCrosMachine('lumpy2.cros',
- self.results_cache.chromeos_root,
- 'average')
- return [m1, m2]
-
+ m1 = machine_manager.MockCrosMachine(
+ 'lumpy1.cros', self.results_cache.chromeos_root, 'average')
+ m2 = machine_manager.MockCrosMachine(
+ 'lumpy2.cros', self.results_cache.chromeos_root, 'average')
+ return [m1, m2]
mock_checksum.return_value = 'FakeImageChecksumabc123'
self.results_cache.machine_manager.GetMachines = FakeGetMachines
@@ -879,7 +973,7 @@ class ResultsCacheTest(unittest.TestCase):
# Test 1. Generating cache name for reading (not writing).
key_list = self.results_cache._GetCacheKeyList(True)
- self.assertEqual(key_list[0], '*') # Machine checksum value, for read.
+ self.assertEqual(key_list[0], '*') # Machine checksum value, for read.
self.assertEqual(key_list[1], 'sunspider')
self.assertEqual(key_list[2], '1')
self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
@@ -929,13 +1023,13 @@ class ResultsCacheTest(unittest.TestCase):
self.assertEqual(key_list[4], 'FakeImageChecksumabc123')
self.assertEqual(key_list[5], 'FakeMachineChecksumabc987')
-
- @mock.patch.object (command_executer.CommandExecuter, 'RunCommand')
- @mock.patch.object (os.path, 'isdir')
- @mock.patch.object (Result, 'CreateFromCacheHit')
+ @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+ @mock.patch.object(os.path, 'isdir')
+ @mock.patch.object(Result, 'CreateFromCacheHit')
def test_read_result(self, mock_create, mock_isdir, mock_runcmd):
self.fakeCacheReturnResult = None
+
def FakeGetCacheDirForRead():
return self.fakeCacheReturnResult
@@ -950,7 +1044,7 @@ class ResultsCacheTest(unittest.TestCase):
# Set up results_cache _GetCacheDirFor{Read,Write} to return
# self.fakeCacheReturnResult, which is initially None (see above).
# So initially, no cache dir is returned.
- self.results_cache._GetCacheDirForRead = FakeGetCacheDirForRead
+ self.results_cache._GetCacheDirForRead = FakeGetCacheDirForRead
self.results_cache._GetCacheDirForWrite = FakeGetCacheDirForWrite
mock_isdir.return_value = True