Diff
Modified: trunk/Tools/CISupport/build-webkit-org/steps.py (281957 => 281958)
--- trunk/Tools/CISupport/build-webkit-org/steps.py 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/CISupport/build-webkit-org/steps.py 2021-09-02 22:09:41 UTC (rev 281958)
@@ -1024,7 +1024,7 @@
name = "perf-test"
description = ["perf-tests running"]
descriptionDone = ["perf-tests"]
- command = ["python", "./Tools/Scripts/run-perf-tests",
+ command = ["python3", "./Tools/Scripts/run-perf-tests",
"--output-json-path", "perf-test-results.json",
"--worker-config-json-path", "../../perf-test-config.json",
"--no-show-results",
Modified: trunk/Tools/ChangeLog (281957 => 281958)
--- trunk/Tools/ChangeLog 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/ChangeLog 2021-09-02 22:09:41 UTC (rev 281958)
@@ -1,3 +1,23 @@
+2021-09-02 Carlos Alberto Lopez Perez <clo...@igalia.com>
+
+ [run-perf-tests] Add support for python3 and use it by default
+ https://bugs.webkit.org/show_bug.cgi?id=229783
+
+ Reviewed by Jonathan Bedard.
+
+ Make the script compatible with python3 and set it to use python3
+ by default. The script is still compatible with python2.
+
+ * CISupport/build-webkit-org/steps.py:
+ (RunAndUploadPerfTests):
+ * Scripts/run-perf-tests:
+ * Scripts/webkitpy/common/net/file_uploader.py:
+ (FileUploader._upload_data.callback):
+ (FileUploader):
+ * Scripts/webkitpy/performance_tests/perftestsrunner.py:
+ * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
+ (MainTest.test_upload_json):
+
2021-09-02 Jonathan Bedard <jbed...@apple.com>
[contributors.json] Relocation (Part 6)
Modified: trunk/Tools/Scripts/run-perf-tests (281957 => 281958)
--- trunk/Tools/Scripts/run-perf-tests 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/Scripts/run-perf-tests 2021-09-02 22:09:41 UTC (rev 281958)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (C) 2012 Google Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
Modified: trunk/Tools/Scripts/webkitpy/common/net/file_uploader.py (281957 => 281958)
--- trunk/Tools/Scripts/webkitpy/common/net/file_uploader.py 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/Scripts/webkitpy/common/net/file_uploader.py 2021-09-02 22:09:41 UTC (rev 281958)
@@ -31,6 +31,7 @@
import sys
from webkitpy.common.net.networktransaction import NetworkTransaction, NetworkTimeout
+from webkitcorepy import string_utils, unicode
if sys.version_info > (3, 0):
from urllib.request import Request, urlopen
@@ -105,7 +106,7 @@
# FIXME: Setting a timeout, either globally using socket.setdefaulttimeout()
# or in urlopen(), doesn't appear to work on Mac 10.5 with Python 2.7.
# For now we will ignore the timeout value and hope for the best.
- request = Request(self._url, data, {"Content-Type": content_type})
+ request = Request(self._url, string_utils.encode(data), {string_utils.encode(b'Content-Type'): string_utils.encode(content_type)})
return urlopen(request)
return NetworkTransaction(timeout_seconds=self._timeout_seconds).run(callback)
Modified: trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py (281957 => 281958)
--- trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py 2021-09-02 22:09:41 UTC (rev 281958)
@@ -32,6 +32,7 @@
import json
import logging
import optparse
+import sys
import time
import datetime
@@ -42,6 +43,7 @@
from webkitpy.common.net.file_uploader import FileUploader
from webkitpy.performance_tests.perftest import PerfTestFactory
from webkitpy.performance_tests.perftest import DEFAULT_TEST_RUNNER_COUNT
+from webkitcorepy import string_utils
_log = logging.getLogger(__name__)
@@ -285,7 +287,7 @@
'buildNumber': int(build_number) if build_number else None}
contents = {'tests': {}}
- for key, value in meta_info.items():
+ for key, value in list(meta_info.items()):
if value:
contents[key] = value
@@ -354,7 +356,7 @@
_log.error("Failed to upload JSON file to %s in 120s: %s" % (url, error))
return False
- response_body = [line.strip('\n') for line in response]
+ response_body = [string_utils.decode(line, target_type=str).strip('\n') for line in response]
if response_body != ['OK']:
try:
parsed_response = json.loads('\n'.join(response_body))
Modified: trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py (281957 => 281958)
--- trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py 2021-09-02 22:00:58 UTC (rev 281957)
+++ trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py 2021-09-02 22:09:41 UTC (rev 281958)
@@ -33,7 +33,7 @@
import logging
import unittest
-from webkitcorepy import StringIO
+from webkitcorepy import BytesIO
from webkitpy.common.host_mock import MockHost
from webkitpy.port.test import TestPort
@@ -203,16 +203,16 @@
raise Exception
return mock.upload_single_text_file_return_value
- MockFileUploader.upload_single_text_file_return_value = StringIO('OK')
+ MockFileUploader.upload_single_text_file_return_value = BytesIO(b'OK')
self.assertTrue(runner._upload_json('https://some.host', 'some.json', '/some/path', MockFileUploader))
self.assertEqual(MockFileUploader.called, ['FileUploader', 'upload_single_text_file'])
MockFileUploader.reset()
- MockFileUploader.upload_single_text_file_return_value = StringIO('OK')
+ MockFileUploader.upload_single_text_file_return_value = BytesIO(b'OK')
self.assertTrue(runner._upload_json('some.host', 'some.json', '/some/path', MockFileUploader))
MockFileUploader.reset()
- MockFileUploader.upload_single_text_file_return_value = StringIO('Some error')
+ MockFileUploader.upload_single_text_file_return_value = BytesIO(b'Some error')
with OutputCapture(level=logging.INFO) as captured:
self.assertFalse(runner._upload_json('https://some.host', 'some.json', '/some/path', MockFileUploader))
self.assertEqual(
@@ -227,12 +227,12 @@
self.assertEqual(MockFileUploader.called, ['FileUploader', 'upload_single_text_file'])
MockFileUploader.reset()
- MockFileUploader.upload_single_text_file_return_value = StringIO('{"status": "OK"}')
+ MockFileUploader.upload_single_text_file_return_value = BytesIO(b'{"status": "OK"}')
self.assertTrue(runner._upload_json('https://some.host', 'some.json', '/some/path', MockFileUploader))
self.assertEqual(MockFileUploader.called, ['FileUploader', 'upload_single_text_file'])
MockFileUploader.reset()
- MockFileUploader.upload_single_text_file_return_value = StringIO('{"status": "SomethingHasFailed", "failureStored": false}')
+ MockFileUploader.upload_single_text_file_return_value = BytesIO(b'{"status": "SomethingHasFailed", "failureStored": false}')
with OutputCapture(level=logging.INFO) as captured:
self.assertFalse(runner._upload_json('https://some.host', 'some.json', '/some/path', MockFileUploader))
serialized_json = json.dumps({'status': 'SomethingHasFailed', 'failureStored': False}, indent=4)