| Index: third_party/WebKit/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
|
| diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
|
| index cdb685e6ac937b8c1b4985c035cd65d3d81a6ef0..50ea557a90d2d3c0bd54304b74f1c9c71eaa9635 100644
|
| --- a/third_party/WebKit/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
|
| +++ b/third_party/WebKit/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
|
| @@ -45,6 +45,7 @@ from webkitpy.performance_tests.perftestsrunner import PerfTestsRunner
|
|
|
|
|
| class MainTest(unittest.TestCase):
|
| +
|
| def create_runner(self, args=[]):
|
| options, parsed_args = PerfTestsRunner._parse_args(args)
|
| test_port = TestPort(host=MockHost(), options=options)
|
| @@ -102,7 +103,7 @@ class MainTest(unittest.TestCase):
|
| self._add_file(runner, 'Suite', 'SkippedTest2.html')
|
| port.skipped_perf_tests = lambda: ['Suite/SkippedTest1.html', 'Suite/SkippedTest1.html', 'SkippedSuite']
|
| self.assertItemsEqual(self._collect_tests_and_sort_test_name(runner),
|
| - ['SkippedSuite/Test1.html', 'Suite/SkippedTest1.html', 'Suite/Test1.html'])
|
| + ['SkippedSuite/Test1.html', 'Suite/SkippedTest1.html', 'Suite/Test1.html'])
|
|
|
| def test_collect_tests_with_ignored_skipped_list(self):
|
| runner, port = self.create_runner(args=['--force'])
|
| @@ -113,7 +114,8 @@ class MainTest(unittest.TestCase):
|
| self._add_file(runner, 'inspector/resources', 'resource_file.html')
|
| self._add_file(runner, 'unsupported', 'unsupported_test2.html')
|
| port.skipped_perf_tests = lambda: ['inspector/unsupported_test1.html', 'unsupported']
|
| - self.assertItemsEqual(self._collect_tests_and_sort_test_name(runner), ['inspector/test1.html', 'inspector/test2.html', 'inspector/unsupported_test1.html', 'unsupported/unsupported_test2.html'])
|
| + self.assertItemsEqual(self._collect_tests_and_sort_test_name(runner), [
|
| + 'inspector/test1.html', 'inspector/test2.html', 'inspector/unsupported_test1.html', 'unsupported/unsupported_test2.html'])
|
|
|
| def test_default_args(self):
|
| runner, port = self.create_runner()
|
| @@ -129,21 +131,21 @@ class MainTest(unittest.TestCase):
|
| def test_parse_args(self):
|
| runner, port = self.create_runner()
|
| options, args = PerfTestsRunner._parse_args([
|
| - '--build-directory=folder42',
|
| - '--platform=platform42',
|
| - '--builder-name', 'webkit-mac-1',
|
| - '--build-number=56',
|
| - '--time-out-ms=42',
|
| - '--no-show-results',
|
| - '--reset-results',
|
| - '--output-json-path=a/output.json',
|
| - '--slave-config-json-path=a/source.json',
|
| - '--test-results-server=somehost',
|
| - '--additional-driver-flag=--enable-threaded-parser',
|
| - '--additional-driver-flag=--awesomesauce',
|
| - '--repeat=5',
|
| - '--test-runner-count=5',
|
| - '--debug'])
|
| + '--build-directory=folder42',
|
| + '--platform=platform42',
|
| + '--builder-name', 'webkit-mac-1',
|
| + '--build-number=56',
|
| + '--time-out-ms=42',
|
| + '--no-show-results',
|
| + '--reset-results',
|
| + '--output-json-path=a/output.json',
|
| + '--slave-config-json-path=a/source.json',
|
| + '--test-results-server=somehost',
|
| + '--additional-driver-flag=--enable-threaded-parser',
|
| + '--additional-driver-flag=--awesomesauce',
|
| + '--repeat=5',
|
| + '--test-runner-count=5',
|
| + '--debug'])
|
| self.assertTrue(options.build)
|
| self.assertEqual(options.build_directory, 'folder42')
|
| self.assertEqual(options.platform, 'platform42')
|
| @@ -213,7 +215,8 @@ class MainTest(unittest.TestCase):
|
| self.assertEqual(MockFileUploader.called, ['FileUploader', 'upload_single_text_file'])
|
|
|
| MockFileUploader.reset()
|
| - MockFileUploader.upload_single_text_file_return_value = StringIO.StringIO('{"status": "SomethingHasFailed", "failureStored": false}')
|
| + MockFileUploader.upload_single_text_file_return_value = StringIO.StringIO(
|
| + '{"status": "SomethingHasFailed", "failureStored": false}')
|
| output = OutputCapture()
|
| output.capture_output()
|
| self.assertFalse(runner._upload_json('some.host', 'some.json', '/some/path', MockFileUploader))
|
| @@ -272,7 +275,7 @@ Finished: 0.1 s
|
| """
|
|
|
| results = {'url': 'https://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings/event-target-wrapper.html',
|
| - 'metrics': {'Time': {'current': [[1486.0, 1471.0, 1510.0, 1505.0, 1478.0, 1490.0]] * 4}}}
|
| + 'metrics': {'Time': {'current': [[1486.0, 1471.0, 1510.0, 1505.0, 1478.0, 1490.0]] * 4}}}
|
|
|
|
|
| class SomeParserTestData:
|
| @@ -342,6 +345,7 @@ Finished: 0.1 s
|
|
|
|
|
| class TestDriver:
|
| +
|
| def run_test(self, driver_input, stop_when_done):
|
| text = ''
|
| timeout = False
|
| @@ -372,6 +376,7 @@ class TestDriver:
|
|
|
|
|
| class IntegrationTest(unittest.TestCase):
|
| +
|
| def _normalize_output(self, log):
|
| return re.sub(r'(stdev=\s+\d+\.\d{5})\d+', r'\1', re.sub(r'Finished: [0-9\.]+ s', 'Finished: 0.1 s', log))
|
|
|
| @@ -429,7 +434,7 @@ class IntegrationTest(unittest.TestCase):
|
| def test_run_test_set(self):
|
| runner, port = self.create_runner()
|
| tests = self._tests_for_runner(runner, ['inspector/pass.html', 'inspector/silent.html', 'inspector/failed.html',
|
| - 'inspector/tonguey.html', 'inspector/timeout.html', 'inspector/crash.html'])
|
| + 'inspector/tonguey.html', 'inspector/timeout.html', 'inspector/crash.html'])
|
| output = OutputCapture()
|
| output.capture_output()
|
| try:
|
| @@ -450,7 +455,7 @@ class IntegrationTest(unittest.TestCase):
|
| runner, port = self.create_runner(driver_class=TestDriverWithStopCount)
|
|
|
| tests = self._tests_for_runner(runner, ['inspector/pass.html', 'inspector/silent.html', 'inspector/failed.html',
|
| - 'inspector/tonguey.html', 'inspector/timeout.html', 'inspector/crash.html'])
|
| + 'inspector/tonguey.html', 'inspector/timeout.html', 'inspector/crash.html'])
|
| unexpected_result_count = runner._run_tests_set(tests)
|
|
|
| self.assertEqual(TestDriverWithStopCount.stop_count, 6)
|
| @@ -525,11 +530,11 @@ class IntegrationTest(unittest.TestCase):
|
| _event_target_wrapper_and_inspector_results = {
|
| "Bindings":
|
| {"url": "https://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings",
|
| - "tests": {"event-target-wrapper": EventTargetWrapperTestData.results}}}
|
| + "tests": {"event-target-wrapper": EventTargetWrapperTestData.results}}}
|
|
|
| def test_run_with_json_output(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server=some.host'])
|
| + '--test-results-server=some.host'])
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| self.assertEqual(self._load_output_json(runner), [{
|
| "buildTime": "2013-02-08T15:19:37.460000", "tests": self._event_target_wrapper_and_inspector_results,
|
| @@ -541,7 +546,7 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_description(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server=some.host', '--description', 'some description'])
|
| + '--test-results-server=some.host', '--description', 'some description'])
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| self.assertEqual(self._load_output_json(runner), [{
|
| "buildTime": "2013-02-08T15:19:37.460000", "description": "some description",
|
| @@ -552,14 +557,14 @@ class IntegrationTest(unittest.TestCase):
|
| runner, port = self.create_runner(args)
|
| filesystem = port.host.filesystem
|
| filesystem.write_text_file(runner._base_path + '/resources/results-template.html',
|
| - 'BEGIN<script src="%AbsolutePathToWebKitTrunk%/some.js"></script>'
|
| - '<script src="%AbsolutePathToWebKitTrunk%/other.js"></script><script>%PeformanceTestsResultsJSON%</script>END')
|
| + 'BEGIN<script src="%AbsolutePathToWebKitTrunk%/some.js"></script>'
|
| + '<script src="%AbsolutePathToWebKitTrunk%/other.js"></script><script>%PeformanceTestsResultsJSON%</script>END')
|
| filesystem.write_text_file(runner._base_path + '/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js', 'jquery content')
|
| return runner, port
|
|
|
| def test_run_respects_no_results(self):
|
| runner, port = self.create_runner(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server=some.host', '--no-results'])
|
| + '--test-results-server=some.host', '--no-results'])
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=False, results_shown=False)
|
| self.assertFalse(port.host.filesystem.isfile('/mock-checkout/output.json'))
|
|
|
| @@ -625,16 +630,16 @@ class IntegrationTest(unittest.TestCase):
|
| self.assertEqual(runner._output_json_path(), '/mock-checkout/output.json')
|
| self.assertEqual(self._load_output_json(runner), [expected_entry])
|
| self.assertEqual(filesystem.read_text_file('/mock-checkout/output.html'),
|
| - 'BEGIN<script src="/test.checkout/some.js"></script><script src="/test.checkout/other.js"></script>'
|
| - '<script>%s</script>END' % port.host.filesystem.read_text_file(runner._output_json_path()))
|
| + 'BEGIN<script src="/test.checkout/some.js"></script><script src="/test.checkout/other.js"></script>'
|
| + '<script>%s</script>END' % port.host.filesystem.read_text_file(runner._output_json_path()))
|
| self.assertEqual(page_shown[0], '/mock-checkout/output.html')
|
|
|
| self._test_run_with_json_output(runner, filesystem, results_shown=False)
|
| self.assertEqual(runner._output_json_path(), '/mock-checkout/output.json')
|
| self.assertEqual(self._load_output_json(runner), [expected_entry, expected_entry])
|
| self.assertEqual(filesystem.read_text_file('/mock-checkout/output.html'),
|
| - 'BEGIN<script src="/test.checkout/some.js"></script><script src="/test.checkout/other.js"></script>'
|
| - '<script>%s</script>END' % port.host.filesystem.read_text_file(runner._output_json_path()))
|
| + 'BEGIN<script src="/test.checkout/some.js"></script><script src="/test.checkout/other.js"></script>'
|
| + '<script>%s</script>END' % port.host.filesystem.read_text_file(runner._output_json_path()))
|
|
|
| def test_run_respects_no_show_results(self):
|
| show_results_html_file = lambda path: page_shown.append(path)
|
| @@ -646,7 +651,7 @@ class IntegrationTest(unittest.TestCase):
|
| self.assertEqual(page_shown[0], '/mock-checkout/output.html')
|
|
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--no-show-results'])
|
| + '--no-show-results'])
|
| page_shown = []
|
| port.show_results_html_file = show_results_html_file
|
| self._test_run_with_json_output(runner, port.host.filesystem, results_shown=False)
|
| @@ -661,7 +666,7 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_slave_config_json(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--slave-config-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host'])
|
| + '--slave-config-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host'])
|
| port.host.filesystem.write_text_file('/mock-checkout/slave-config.json', '{"key": "value"}')
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| self.assertEqual(self._load_output_json(runner), [{
|
| @@ -670,8 +675,9 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_bad_slave_config_json(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--slave-config-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host'])
|
| - logs = self._test_run_with_json_output(runner, port.host.filesystem, expected_exit_code=PerfTestsRunner.EXIT_CODE_BAD_SOURCE_JSON)
|
| + '--slave-config-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host'])
|
| + logs = self._test_run_with_json_output(runner, port.host.filesystem,
|
| + expected_exit_code=PerfTestsRunner.EXIT_CODE_BAD_SOURCE_JSON)
|
| self.assertTrue('Missing slave configuration JSON file: /mock-checkout/slave-config.json' in logs)
|
| port.host.filesystem.write_text_file('/mock-checkout/slave-config.json', 'bad json')
|
| self._test_run_with_json_output(runner, port.host.filesystem, expected_exit_code=PerfTestsRunner.EXIT_CODE_BAD_SOURCE_JSON)
|
| @@ -680,7 +686,7 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_multiple_repositories(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server=some.host'])
|
| + '--test-results-server=some.host'])
|
| port.repository_path = lambda: '/mock-checkout'
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| self.assertEqual(self._load_output_json(runner), [{
|
| @@ -689,7 +695,7 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_upload_json(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server', 'some.host', '--platform', 'platform1', '--builder-name', 'builder1', '--build-number', '123'])
|
| + '--test-results-server', 'some.host', '--platform', 'platform1', '--builder-name', 'builder1', '--build-number', '123'])
|
|
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| generated_json = json.loads(port.host.filesystem.files['/mock-checkout/output.json'])
|
| @@ -697,12 +703,13 @@ class IntegrationTest(unittest.TestCase):
|
| self.assertEqual(generated_json[0]['builderName'], 'builder1')
|
| self.assertEqual(generated_json[0]['buildNumber'], 123)
|
|
|
| - self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=False, expected_exit_code=PerfTestsRunner.EXIT_CODE_FAILED_UPLOADING)
|
| + self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=False,
|
| + expected_exit_code=PerfTestsRunner.EXIT_CODE_FAILED_UPLOADING)
|
|
|
| def test_run_with_upload_json_should_generate_perf_webkit_json(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server', 'some.host', '--platform', 'platform1', '--builder-name', 'builder1', '--build-number', '123',
|
| - '--slave-config-json-path=/mock-checkout/slave-config.json'])
|
| + '--test-results-server', 'some.host', '--platform', 'platform1', '--builder-name', 'builder1', '--build-number', '123',
|
| + '--slave-config-json-path=/mock-checkout/slave-config.json'])
|
| port.host.filesystem.write_text_file('/mock-checkout/slave-config.json', '{"key": "value1"}')
|
|
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True)
|
| @@ -720,7 +727,8 @@ class IntegrationTest(unittest.TestCase):
|
| self.assertEqual(output['revisions'], {'chromium': {'revision': '5678', 'timestamp': '2013-02-01 08:48:05 +0000'}})
|
| self.assertEqual(output['tests'].keys(), ['Bindings'])
|
| self.assertEqual(sorted(output['tests']['Bindings'].keys()), ['tests', 'url'])
|
| - self.assertEqual(output['tests']['Bindings']['url'], 'https://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings')
|
| + self.assertEqual(output['tests']['Bindings']['url'],
|
| + 'https://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings')
|
| self.assertEqual(output['tests']['Bindings']['tests'].keys(), ['event-target-wrapper'])
|
| self.assertEqual(output['tests']['Bindings']['tests']['event-target-wrapper'], {
|
| 'url': 'https://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings/event-target-wrapper.html',
|
| @@ -729,7 +737,7 @@ class IntegrationTest(unittest.TestCase):
|
| def test_run_with_repeat(self):
|
| self.maxDiff = None
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-results-server=some.host', '--repeat', '5'])
|
| + '--test-results-server=some.host', '--repeat', '5'])
|
| self._test_run_with_json_output(runner, port.host.filesystem, upload_succeeds=True, repeat=5)
|
| self.assertEqual(self._load_output_json(runner), [
|
| {"buildTime": "2013-02-08T15:19:37.460000",
|
| @@ -750,7 +758,7 @@ class IntegrationTest(unittest.TestCase):
|
|
|
| def test_run_with_test_runner_count(self):
|
| runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json',
|
| - '--test-runner-count=3'])
|
| + '--test-runner-count=3'])
|
| self._test_run_with_json_output(runner, port.host.filesystem, compare_logs=False)
|
| generated_json = json.loads(port.host.filesystem.files['/mock-checkout/output.json'])
|
| self.assertTrue(isinstance(generated_json, list))
|
|
|