[tools] Clean up py2 code

Bug: chromium:1292013
Change-Id: Ic2c3a197005a2136bb0eda4cbb36d8eb57f42a7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3523047
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79507}
This commit is contained in:
Michael Achenbach 2022-03-17 09:29:34 +01:00 committed by V8 LUCI CQ
parent 33bf4c4bca
commit 1289704aae
27 changed files with 41 additions and 116 deletions

View File

@ -9,5 +9,6 @@ USE_PYTHON3 = True
def CheckChangeOnCommit(input_api, output_api): def CheckChangeOnCommit(input_api, output_api):
tests = input_api.canned_checks.GetUnitTestsInDirectory( tests = input_api.canned_checks.GetUnitTestsInDirectory(
input_api, output_api, 'unittests', files_to_check=[r'.+_test\.py$']) input_api, output_api, 'unittests', files_to_check=[r'.+_test\.py$'],
run_on_python2=False)
return input_api.RunTests(tests) return input_api.RunTests(tests)

View File

@ -14,6 +14,7 @@ def _CommonChecks(input_api, output_api):
input_api.os_path.join(input_api.PresubmitLocalPath()), input_api.os_path.join(input_api.PresubmitLocalPath()),
files_to_check=[r'.+_unittest\.py$'], files_to_check=[r'.+_unittest\.py$'],
files_to_skip=[], files_to_skip=[],
run_on_python2=False,
)) ))
def CheckChangeOnUpload(input_api, output_api): def CheckChangeOnUpload(input_api, output_api):

View File

@ -2,8 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
from functools import reduce from functools import reduce
from collections import OrderedDict, namedtuple from collections import OrderedDict, namedtuple

View File

@ -2,9 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
from contextlib import contextmanager from contextlib import contextmanager
import os import os
import re import re
@ -19,8 +16,6 @@ from ..local.android import (
from ..local import utils from ..local import utils
from ..objects import output from ..objects import output
PYTHON3 = sys.version_info >= (3, 0)
BASE_DIR = os.path.normpath( BASE_DIR = os.path.normpath(
os.path.join(os.path.dirname(os.path.abspath(__file__)), '..' , '..', '..')) os.path.join(os.path.dirname(os.path.abspath(__file__)), '..' , '..', '..'))
@ -115,17 +110,11 @@ class BaseCommand(object):
timer.cancel() timer.cancel()
def convert(stream):
if PYTHON3:
return stream.decode('utf-8', 'replace')
else:
return stream.decode('utf-8', 'replace').encode('utf-8')
return output.Output( return output.Output(
process.returncode, process.returncode,
timeout_occured[0], timeout_occured[0],
convert(stdout), stdout.decode('utf-8', 'replace'),
convert(stderr), stderr.decode('utf-8', 'replace'),
process.pid, process.pid,
duration duration
) )

View File

@ -1,11 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2014 the V8 project authors. All rights reserved. # Copyright 2014 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
from contextlib import contextmanager from contextlib import contextmanager
from multiprocessing import Process, Queue from multiprocessing import Process, Queue
import os import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2014 the V8 project authors. All rights reserved. # Copyright 2014 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
@ -28,7 +28,7 @@ class PoolTest(unittest.TestCase):
# Any result can be a heartbeat due to timings. # Any result can be a heartbeat due to timings.
continue continue
results.add(result.value) results.add(result.value)
self.assertEquals(set(range(0, 10)), results) self.assertEqual(set(range(0, 10)), results)
def testException(self): def testException(self):
results = set() results = set()
@ -42,7 +42,7 @@ class PoolTest(unittest.TestCase):
results.add(result.value) results.add(result.value)
expect = set(range(0, 12)) expect = set(range(0, 12))
expect.remove(10) expect.remove(10)
self.assertEquals(expect, results) self.assertEqual(expect, results)
def testAdd(self): def testAdd(self):
results = set() results = set()
@ -54,8 +54,9 @@ class PoolTest(unittest.TestCase):
results.add(result.value) results.add(result.value)
if result.value < 30: if result.value < 30:
pool.add([result.value + 20]) pool.add([result.value + 20])
self.assertEquals(set(range(0, 10) + range(20, 30) + range(40, 50)), self.assertEqual(
results) set(range(0, 10)) | set(range(20, 30)) | set(range(40, 50)),
results)
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -25,10 +25,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# for py2/py3 compatibility
from __future__ import print_function
from __future__ import absolute_import
import os import os
import re import re

View File

@ -1,10 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2016 the V8 project authors. All rights reserved. # Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
from __future__ import absolute_import
import os import os
import sys import sys
import unittest import unittest

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2016 the V8 project authors. All rights reserved. # Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.

View File

@ -25,9 +25,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# for py2/py3 compatibility
from __future__ import print_function
from os.path import exists from os.path import exists
from os.path import isdir from os.path import isdir
from os.path import join from os.path import join

View File

@ -25,9 +25,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# for py2/py3 compatibility
from __future__ import print_function
import sys import sys
import time import time

View File

@ -1,13 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python3
# #
# Copyright 2017 the V8 project authors. All rights reserved. # Copyright 2017 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import absolute_import
from __future__ import print_function
import random import random
import sys import sys

View File

@ -2,12 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
try: # Python3 from itertools import zip_longest
from itertools import zip_longest
PYTHON3 = True
except ImportError: # Python2
from itertools import izip_longest as zip_longest
PYTHON3 = False
from ..testproc.base import ( from ..testproc.base import (
DROP_RESULT, DROP_OUTPUT, DROP_PASS_OUTPUT, DROP_PASS_STDOUT) DROP_RESULT, DROP_OUTPUT, DROP_PASS_OUTPUT, DROP_PASS_STDOUT)
@ -147,9 +142,7 @@ class ExpectedOutProc(OutProc):
if output.exit_code != 0: if output.exit_code != 0:
return True return True
# TODO(https://crbug.com/1292013): Simplify after Python3 migration. with open(self._expected_filename, 'r', encoding='utf-8') as f:
kwargs = {'encoding': 'utf-8'} if PYTHON3 else {}
with open(self._expected_filename, 'r', **kwargs) as f:
expected_lines = f.readlines() expected_lines = f.readlines()
for act_iterator in self._act_block_iterator(output): for act_iterator in self._act_block_iterator(output):

View File

@ -5,10 +5,7 @@
import os import os
import re import re
try: # Python3 from itertools import zip_longest
from itertools import zip_longest
except ImportError: # Python2
from itertools import izip_longest as zip_longest
from . import base from . import base

View File

@ -1,12 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python3
# #
# Copyright 2017 the V8 project authors. All rights reserved. # Copyright 2017 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import absolute_import
from __future__ import print_function
from functools import reduce from functools import reduce
import datetime import datetime

View File

@ -2,9 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
from collections import defaultdict from collections import defaultdict
import time import time

View File

@ -2,10 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
from __future__ import absolute_import
import datetime import datetime
import json import json
import os import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2021 the V8 project authors. All rights reserved. # Copyright 2021 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
@ -87,7 +87,8 @@ class TestSequenceProc(unittest.TestCase):
self.assertEqual(set(test.n for test in tests), results.tests) self.assertEqual(set(test.n for test in tests), results.tests)
def test_wrong_usage(self): def test_wrong_usage(self):
self.assertRaises(lambda: SequenceProc(0)) with self.assertRaises(Exception):
SequenceProc(0)
def test_no_tests(self): def test_no_tests(self):
self._test([], 1, 1) self._test([], 1, 1)

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2019 the V8 project authors. All rights reserved. # Copyright 2019 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.

View File

@ -2,9 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# for py2/py3 compatibility
from __future__ import print_function
import signal import signal
from . import base from . import base

View File

@ -1,4 +1,3 @@
from __future__ import print_function
# Copyright 2018 the V8 project authors. All rights reserved. # Copyright 2018 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2020 the V8 project authors. All rights reserved. # Copyright 2020 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.

View File

@ -1,10 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2020 the V8 project authors. All rights reserved. # Copyright 2020 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
from __future__ import absolute_import
import os import os
import sys import sys
import unittest import unittest

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2019 the V8 project authors. All rights reserved. # Copyright 2019 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.

View File

@ -11,9 +11,6 @@ Raw gyp values are supported - they will be tranformed into valid json.
""" """
# TODO(machenbach): Remove this when gyp is deprecated. # TODO(machenbach): Remove this when gyp is deprecated.
# for py2/py3 compatibility
from __future__ import print_function
import json import json
import os import os
import sys import sys

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright 2017 the V8 project authors. All rights reserved. # Copyright 2017 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
@ -17,9 +17,6 @@ with different test suite extensions and build configurations.
# TODO(machenbach): Coverage data from multiprocessing doesn't work. # TODO(machenbach): Coverage data from multiprocessing doesn't work.
# TODO(majeski): Add some tests for the fuzzers. # TODO(majeski): Add some tests for the fuzzers.
# for py2/py3 compatibility
from __future__ import print_function
import collections import collections
import contextlib import contextlib
import json import json
@ -30,11 +27,7 @@ import sys
import tempfile import tempfile
import unittest import unittest
# TODO(https://crbug.com/1292016): Remove after Python3 migration. from io import StringIO
try:
from cStringIO import StringIO
except ImportError:
from io import StringIO
TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEST_DATA_ROOT = os.path.join(TOOLS_ROOT, 'unittests', 'testdata') TEST_DATA_ROOT = os.path.join(TOOLS_ROOT, 'unittests', 'testdata')

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# #
# Copyright 2012 the V8 project authors. All rights reserved. # Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -27,17 +27,8 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import hashlib
# for py2/py3 compatibility md5er = hashlib.md5
from __future__ import absolute_import
from __future__ import print_function
try:
import hashlib
md5er = hashlib.md5
except ImportError as e:
import md5
md5er = md5.new
import json import json
@ -55,13 +46,11 @@ from testrunner.local import statusfile
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.local import utils from testrunner.local import utils
PYTHON3 = sys.version_info >= (3, 0) def decode(arg, encoding="utf-8"):
return arg.decode(encoding)
def maybe_decode(arg, encoding="utf-8"): def encode(arg, encoding="utf-8"):
return arg.decode(encoding) if PYTHON3 else arg return arg.encode(encoding)
def maybe_encode(arg, encoding="utf-8"):
return arg.encode(encoding) if PYTHON3 else arg
# Special LINT rules diverging from default and reason. # Special LINT rules diverging from default and reason.
# build/header_guard: Our guards have the form "V8_FOO_H_", not "SRC_FOO_H_". # build/header_guard: Our guards have the form "V8_FOO_H_", not "SRC_FOO_H_".
@ -100,7 +89,7 @@ def CppLintWorker(command):
out_lines = "" out_lines = ""
error_count = -1 error_count = -1
while True: while True:
out_line = maybe_decode(process.stderr.readline()) out_line = decode(process.stderr.readline())
if out_line == '' and process.poll() != None: if out_line == '' and process.poll() != None:
if error_count == -1: if error_count == -1:
print("Failed to process %s" % command.pop()) print("Failed to process %s" % command.pop())
@ -126,7 +115,7 @@ def TorqueLintWorker(command):
out_lines = "" out_lines = ""
error_count = 0 error_count = 0
while True: while True:
out_line = maybe_decode(process.stderr.readline()) out_line = decode(process.stderr.readline())
if out_line == '' and process.poll() != None: if out_line == '' and process.poll() != None:
break break
out_lines += out_line out_lines += out_line
@ -156,7 +145,7 @@ def JSLintWorker(command):
sys.stdout.write("error code " + str(rc) + " running clang-format.\n") sys.stdout.write("error code " + str(rc) + " running clang-format.\n")
return rc return rc
if maybe_decode(output) != contents: if decode(output) != contents:
return 1 return 1
return 0 return 0
@ -214,7 +203,7 @@ class FileContentsCache(object):
for file in files: for file in files:
try: try:
handle = open(file, "r") handle = open(file, "r")
file_sum = md5er(maybe_encode(handle.read())).digest() file_sum = md5er(encode(handle.read())).digest()
if not file in self.sums or self.sums[file] != file_sum: if not file in self.sums or self.sums[file] != file_sum:
changed_or_new.append(file) changed_or_new.append(file)
self.sums[file] = file_sum self.sums[file] = file_sum
@ -498,7 +487,7 @@ class SourceProcessor(SourceFileProcessor):
output = subprocess.Popen('git ls-files --full-name', output = subprocess.Popen('git ls-files --full-name',
stdout=PIPE, cwd=path, shell=True) stdout=PIPE, cwd=path, shell=True)
result = [] result = []
for file in maybe_decode(output.stdout.read()).split(): for file in decode(output.stdout.read()).split():
for dir_part in os.path.dirname(file).replace(os.sep, '/').split('/'): for dir_part in os.path.dirname(file).replace(os.sep, '/').split('/'):
if self.IgnoreDir(dir_part): if self.IgnoreDir(dir_part):
break break
@ -632,7 +621,7 @@ class SourceProcessor(SourceFileProcessor):
for file in files: for file in files:
try: try:
handle = open(file, "rb") handle = open(file, "rb")
contents = maybe_decode(handle.read(), "ISO-8859-1") contents = decode(handle.read(), "ISO-8859-1")
if len(contents) > 0 and not self.ProcessContents(file, contents): if len(contents) > 0 and not self.ProcessContents(file, contents):
success = False success = False
violations += 1 violations += 1