Index: tools/unittests/run_perf_test.py |
diff --git a/tools/unittests/run_perf_test.py b/tools/unittests/run_perf_test.py |
index f9ea0c09c990e1084de0afb27aa9df262e9ca8dc..f3e5aff49f60988475cc45ec7da0d27b524509da 100644 |
--- a/tools/unittests/run_perf_test.py |
+++ b/tools/unittests/run_perf_test.py |
@@ -139,17 +139,17 @@ class PerfTest(unittest.TestCase): |
all_args += args |
return run_perf.Main(all_args) |
- def _LoadResults(self): |
- with open(self._test_output) as f: |
+ def _LoadResults(self, file_name=None): |
+ with open(file_name or self._test_output) as f: |
return json.load(f) |
- def _VerifyResults(self, suite, units, traces): |
+ def _VerifyResults(self, suite, units, traces, file_name=None): |
self.assertEquals([ |
{"units": units, |
"graphs": [suite, trace["name"]], |
"results": trace["results"], |
"stddev": trace["stddev"]} for trace in traces], |
- self._LoadResults()["traces"]) |
+ self._LoadResults(file_name)["traces"]) |
def _VerifyErrors(self, errors): |
self.assertEquals(errors, self._LoadResults()["errors"]) |
@@ -402,17 +402,56 @@ class PerfTest(unittest.TestCase): |
# require lots of complicated mocks for the android tools. |
def testAndroid(self): |
self._WriteTestInput(V8_JSON) |
- platform = run_perf.Platform |
+ # FIXME(machenbach): This is not test-local! |
+ platform = run_perf.AndroidPlatform |
platform.PreExecution = MagicMock(return_value=None) |
platform.PostExecution = MagicMock(return_value=None) |
platform.PreTests = MagicMock(return_value=None) |
platform.Run = MagicMock( |
- return_value="Richards: 1.234\nDeltaBlue: 10657567\n") |
+ return_value=("Richards: 1.234\nDeltaBlue: 10657567\n", None)) |
run_perf.AndroidPlatform = MagicMock(return_value=platform) |
self.assertEquals( |
0, self._CallMain("--android-build-tools", "/some/dir", |
- "--arch", "android_arm")) |
+ "--arch", "arm")) |
self._VerifyResults("test", "score", [ |
{"name": "Richards", "results": ["1.234"], "stddev": ""}, |
{"name": "DeltaBlue", "results": ["10657567.0"], "stddev": ""}, |
]) |
+ |
+ def testTwoRuns_Trybot(self): |
+ test_input = dict(V8_JSON) |
+ test_input["run_count"] = 2 |
+ self._WriteTestInput(test_input) |
+ self._MockCommand([".", ".", ".", "."], |
+ ["Richards: 100\nDeltaBlue: 200\n", |
+ "Richards: 200\nDeltaBlue: 20\n", |
+ "Richards: 50\nDeltaBlue: 200\n", |
+ "Richards: 100\nDeltaBlue: 20\n"]) |
+ test_output_no_patch = path.join(TEST_WORKSPACE, "results_no_patch.json") |
+ self.assertEquals(0, self._CallMain( |
+ "--outdir-no-patch", "out-no-patch", |
+ "--json-test-results-no-patch", test_output_no_patch, |
+ )) |
+ self._VerifyResults("test", "score", [ |
+ {"name": "Richards", "results": ["100.0", "200.0"], "stddev": ""}, |
+ {"name": "DeltaBlue", "results": ["20.0", "20.0"], "stddev": ""}, |
+ ]) |
+ self._VerifyResults("test", "score", [ |
+ {"name": "Richards", "results": ["50.0", "100.0"], "stddev": ""}, |
+ {"name": "DeltaBlue", "results": ["200.0", "200.0"], "stddev": ""}, |
+ ], test_output_no_patch) |
+ self._VerifyErrors([]) |
+ self._VerifyMockMultiple( |
+ (path.join("out", "x64.release", "d7"), "--flag", "run.js"), |
+ (path.join("out-no-patch", "x64.release", "d7"), "--flag", "run.js"), |
+ (path.join("out", "x64.release", "d7"), "--flag", "run.js"), |
+ (path.join("out-no-patch", "x64.release", "d7"), "--flag", "run.js"), |
+ ) |
+ |
+ def testUnzip(self): |
+ def Gen(): |
+ for i in [1, 2, 3]: |
+ yield i, i + 1 |
+ l, r = run_perf.Unzip(Gen()) |
+ self.assertEquals([1, 2, 3], list(l())) |
+ self.assertEquals([2, 3, 4], list(r())) |