diff options
author | Denis Nikitin <denik@google.com> | 2019-09-12 08:38:50 -0700 |
---|---|---|
committer | Denis Nikitin <denik@chromium.org> | 2019-09-13 13:43:17 +0000 |
commit | 8340fb901b5ffb6a53c2880a134330c3d0a70361 (patch) | |
tree | aa77359bfcc45aebe6b1e2a124515894b630e299 /crosperf | |
parent | 985566350786bf556c1d16c8f61f54c05ca035ec (diff) | |
download | toolchain-utils-8340fb901b5ffb6a53c2880a134330c3d0a70361.tar.gz |
crosperf: Fix unittest execution time
Added mock patches for time.time() and time.sleep()
in experiment_runner_unittest.py.
Unittest execution time dropped from 12s to <1s.
BUG=chromium:989571
TEST=cd <path-to-crosperf>; ./run_tests.sh
Change-Id: I60af5305cd022b9a5854c444cfa9c50cbe0a22c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1801423
Tested-by: Denis Nikitin <denik@chromium.org>
Reviewed-by: Zhizhou Yang <zhizhouy@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Diffstat (limited to 'crosperf')
-rwxr-xr-x | crosperf/experiment_runner_unittest.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/crosperf/experiment_runner_unittest.py b/crosperf/experiment_runner_unittest.py index 4809894f..e6cfbcd3 100755 --- a/crosperf/experiment_runner_unittest.py +++ b/crosperf/experiment_runner_unittest.py @@ -3,6 +3,7 @@ # Copyright (c) 2014 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. + """Tests for the experiment runner module.""" from __future__ import print_function @@ -10,9 +11,10 @@ from __future__ import print_function import StringIO import getpass import os +import time -import mock import unittest +import mock import experiment_runner import experiment_status @@ -137,12 +139,18 @@ class ExperimentRunnerTest(unittest.TestCase): cmd_exec=self.mock_cmd_exec) self.assertEqual(er.STATUS_TIME_DELAY, 30) + @mock.patch.object(time, 'time') + @mock.patch.object(time, 'sleep') @mock.patch.object(experiment_status.ExperimentStatus, 'GetStatusString') @mock.patch.object(experiment_status.ExperimentStatus, 'GetProgressString') - def test_run(self, mock_progress_string, mock_status_string): + def test_run(self, mock_progress_string, mock_status_string, mock_sleep, + mock_time): self.run_count = 0 self.is_complete_count = 0 + mock_sleep.return_value = None + # pylint: disable=range-builtin-not-iterating + mock_time.side_effect = range(1, 50, 1) def reset(): self.run_count = 0 @@ -154,7 +162,7 @@ class ExperimentRunnerTest(unittest.TestCase): def FakeIsComplete(): self.is_complete_count += 1 - if self.is_complete_count < 3: + if self.is_complete_count < 6: return False else: return True @@ -304,8 +312,8 @@ class ExperimentRunnerTest(unittest.TestCase): self.assertEqual(mock_html_report.call_count, 1) self.assertEqual(len(mock_emailer.call_args), 2) self.assertEqual(mock_emailer.call_args[0], - (['jane.doe@google.com', - 'john.smith@google.com'], ': image1 vs. image2', + (['jane.doe@google.com', 'john.smith@google.com' + ], ': image1 vs. image2', "<pre style='font-size: 13px'>This is a fake text " 'report.\nResults are stored in _results.\n</pre>')) self.assertTrue(type(mock_emailer.call_args[1]) is dict) |