Skip to content

test: make round-trip-syntax-test Python 3 friendly #32648

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 2, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions utils/round-trip-syntax-test
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import os
import subprocess
import sys
import tempfile
from functools import reduce

logging.basicConfig(format='%(message)s', level=logging.INFO)

Expand All @@ -17,7 +18,8 @@ class RoundTripTask(object):
def __init__(self, input_filename, action, swift_syntax_test,
skip_bad_syntax):
assert action == '-round-trip-parse' or action == '-round-trip-lex'
assert type(input_filename) == unicode
if sys.version_info[0] < 3:
assert type(input_filename) == unicode
assert type(swift_syntax_test) == str

assert os.path.isfile(input_filename), \
Expand Down Expand Up @@ -51,9 +53,9 @@ class RoundTripTask(object):
self.output_file.close()
self.stderr_file.close()

with open(self.output_file.name, 'r') as stdout_in:
with open(self.output_file.name, 'rb') as stdout_in:
self.stdout = stdout_in.read()
with open(self.stderr_file.name, 'r') as stderr_in:
with open(self.stderr_file.name, 'rb') as stderr_in:
self.stderr = stderr_in.read()

os.remove(self.output_file.name)
Expand All @@ -75,7 +77,7 @@ class RoundTripTask(object):
raise RuntimeError()

contents = ''.join(map(lambda l: l.decode('utf-8', errors='replace'),
open(self.input_filename).readlines()))
open(self.input_filename, 'rb').readlines()))
stdout_contents = self.stdout.decode('utf-8', errors='replace')

if contents == stdout_contents:
Expand All @@ -92,7 +94,7 @@ def swift_files_in_dir(d):
swift_files = []
for root, dirs, files in os.walk(d):
for basename in files:
if not basename.decode('utf-8').endswith('.swift'):
if not basename.endswith('.swift'):
continue
abs_file = os.path.abspath(os.path.join(root, basename))
swift_files.append(abs_file)
Expand Down Expand Up @@ -149,7 +151,8 @@ This driver invokes swift-syntax-test using -round-trip-lex and
all_input_files = [filename for dir_listing in dir_listings
for filename in dir_listing]
all_input_files += args.individual_input_files
all_input_files = [f.decode('utf-8') for f in all_input_files]
if sys.version_info[0] < 3:
all_input_files = [f.decode('utf-8') for f in all_input_files]

if len(all_input_files) == 0:
logging.error('No input files!')
Expand Down