Skip to content

Commit 4343cbe

Browse files
authored
Install flake8-bugbear plugin and fix resulting warnings. NFC (#17173)
1 parent 3ebf9f1 commit 4343cbe

20 files changed

+185
-164
lines changed

.flake8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[flake8]
2-
ignore = E111,E114,E501,E261,E266,E121,E402,E241,W504,E741
2+
ignore = E111,E114,E501,E261,E266,E121,E402,E241,W504,E741,B011
33
exclude =
44
./third_party/, # third-party code
55
./tools/filelock.py, # third-party code

emsymbolizer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def decodeVLQ(string):
8787
result = []
8888
shift = 0
8989
value = 0
90-
for i, c in enumerate(string):
90+
for c in string:
9191
try:
9292
integer = vlq_map[c]
9393
except ValueError:
@@ -107,7 +107,7 @@ def decodeVLQ(string):
107107
line = 1
108108
col = 1
109109
name = 0
110-
for i, segment in enumerate(source_map_json['mappings'].split(',')):
110+
for segment in source_map_json['mappings'].split(','):
111111
data = decodeVLQ(segment)
112112
info = []
113113

requirements-dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# Install with `pip3 install -r requirements-dev.txt`
66

77
flake8==3.9.0
8+
flake8-bugbear==22.4.25
89
flake8-unused-arguments==0.0.6
910
coverage==5.5
1011

site/source/get_wiki.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def ConvertFilesToRst():
115115
length = len(title)
116116
# print length
117117
headerbar = ''
118-
for number in range(length):
118+
for _ in range(length):
119119
headerbar += '='
120120
page_reference = filenamestripped
121121
page_reference_link_text = '.. _%s:\n\n' % page_reference

tests/common.py

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ def verify_es5(self, filename):
643643
self.fail('es-check failed to verify ES5 output compliance')
644644

645645
# Build JavaScript code from source code
646-
def build(self, filename, libraries=[], includes=[], force_c=False, js_outfile=True, emcc_args=[], output_basename=None):
646+
def build(self, filename, libraries=None, includes=None, force_c=False, js_outfile=True, emcc_args=None, output_basename=None):
647647
suffix = '.js' if js_outfile else '.wasm'
648648
compiler = [compiler_for(filename, force_c)]
649649
if compiler[0] == EMCC:
@@ -661,11 +661,16 @@ def build(self, filename, libraries=[], includes=[], force_c=False, js_outfile=T
661661
else:
662662
basename = os.path.basename(filename)
663663
output = shared.unsuffixed(basename) + suffix
664-
cmd = compiler + [filename, '-o', output] + self.get_emcc_args(main_file=True) + emcc_args + libraries
664+
cmd = compiler + [filename, '-o', output] + self.get_emcc_args(main_file=True)
665+
if emcc_args:
666+
cmd += emcc_args
667+
if libraries:
668+
cmd += libraries
665669
if shared.suffix(filename) not in ('.i', '.ii'):
666670
# Add the location of the test file to include path.
667671
cmd += ['-I.']
668-
cmd += ['-I' + str(include) for include in includes]
672+
if includes:
673+
cmd += ['-I' + str(include) for include in includes]
669674

670675
self.run_process(cmd, stderr=self.stderr_redirect if not DEBUG else None)
671676
self.assertExists(output)
@@ -729,7 +734,7 @@ def measure_wasm_code_lines(self, wasm):
729734
non_data_lines = [line for line in wat_lines if '(data ' not in line]
730735
return len(non_data_lines)
731736

732-
def run_js(self, filename, engine=None, args=[],
737+
def run_js(self, filename, engine=None, args=None,
733738
output_nicerizer=None,
734739
assert_returncode=0,
735740
interleaved_output=True):
@@ -897,9 +902,11 @@ def get_build_dir(self):
897902
ensure_dir(ret)
898903
return ret
899904

900-
def get_library(self, name, generated_libs, configure=['sh', './configure'],
901-
configure_args=[], make=['make'], make_args=None,
905+
def get_library(self, name, generated_libs, configure=['sh', './configure'], # noqa
906+
configure_args=None, make=None, make_args=None,
902907
env_init=None, cache_name_extra='', native=False):
908+
if make is None:
909+
make = ['make']
903910
if env_init is None:
904911
env_init = {}
905912
if make_args is None:
@@ -929,9 +936,10 @@ def get_library(self, name, generated_libs, configure=['sh', './configure'],
929936
return generated_libs
930937

931938
print(f'<building and saving {cache_name} into cache>', file=sys.stderr)
932-
if configure is not None:
933-
# Avoid += so we don't mutate the default arg
934-
configure = configure + configure_args
939+
if configure and configure_args:
940+
# Make to copy to avoid mutating default param
941+
configure = list(configure)
942+
configure += configure_args
935943

936944
cflags = ' '.join(emcc_args)
937945
env_init.setdefault('CFLAGS', cflags)
@@ -958,7 +966,7 @@ def run_process(self, cmd, check=True, **args):
958966
print(e.stderr)
959967
self.fail(f'subprocess exited with non-zero return code({e.returncode}): `{shared.shlex_join(cmd)}`')
960968

961-
def emcc(self, filename, args=[], output_filename=None, **kwargs):
969+
def emcc(self, filename, args=[], output_filename=None, **kwargs): # noqa
962970
cmd = [compiler_for(filename), filename] + self.get_emcc_args(ldflags='-c' not in args) + args
963971
if output_filename:
964972
cmd += ['-o', output_filename]
@@ -1047,9 +1055,10 @@ def _test_dylink_dso_needed(self, do_run):
10471055

10481056
so = '.wasm' if self.is_wasm() else '.js'
10491057

1050-
def ccshared(src, linkto=[]):
1058+
def ccshared(src, linkto=None):
10511059
cmdv = [EMCC, src, '-o', shared.unsuffixed(src) + so, '-sSIDE_MODULE'] + self.get_emcc_args()
1052-
cmdv += linkto
1060+
if linkto:
1061+
cmdv += linkto
10531062
self.run_process(cmdv)
10541063

10551064
ccshared('liba.cpp')
@@ -1076,8 +1085,9 @@ def ccshared(src, linkto=[]):
10761085
''',
10771086
'a: loaded\na: b (prev: (null))\na: c (prev: b)\n', emcc_args=extra_args)
10781087

1088+
extra_args = []
10791089
for libname in ['liba', 'libb', 'libc']:
1080-
self.emcc_args += ['--embed-file', libname + so]
1090+
extra_args += ['--embed-file', libname + so]
10811091
do_run(r'''
10821092
#include <assert.h>
10831093
#include <dlfcn.h>
@@ -1103,7 +1113,7 @@ def ccshared(src, linkto=[]):
11031113
return 0;
11041114
}
11051115
''' % locals(),
1106-
'a: loaded\na: b (prev: (null))\na: c (prev: b)\n')
1116+
'a: loaded\na: b (prev: (null))\na: c (prev: b)\n', emcc_args=extra_args)
11071117

11081118
def filtered_js_engines(self):
11091119
for engine in self.js_engines:
@@ -1140,12 +1150,12 @@ def do_run_in_out_file_test(self, *path, **kwargs):
11401150
return self._build_and_run(srcfile, expected, **kwargs)
11411151

11421152
## Does a complete test - builds, runs, checks output, etc.
1143-
def _build_and_run(self, filename, expected_output, args=[], output_nicerizer=None,
1153+
def _build_and_run(self, filename, expected_output, args=None, output_nicerizer=None,
11441154
no_build=False,
1145-
libraries=[],
1146-
includes=[],
1155+
libraries=None,
1156+
includes=None,
11471157
assert_returncode=0, assert_identical=False, assert_all=False,
1148-
check_for_error=True, force_c=False, emcc_args=[],
1158+
check_for_error=True, force_c=False, emcc_args=None,
11491159
interleaved_output=True,
11501160
regex=False,
11511161
output_basename=None):
@@ -1745,11 +1755,11 @@ def build_library(name,
17451755
generated_libs,
17461756
configure,
17471757
make,
1748-
make_args=[],
1749-
cache=None,
1750-
cache_name=None,
1751-
env_init={},
1752-
native=False):
1758+
make_args,
1759+
cache,
1760+
cache_name,
1761+
env_init,
1762+
native):
17531763
"""Build a library and cache the result. We build the library file
17541764
once and cache it for all our tests. (We cache in memory since the test
17551765
directory is destroyed and recreated for each test. Note that we cache

tests/gen_large_switchcase.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
cases = ''
1111
i = 1
1212
incr = 1
13-
for x in range(0, num_cases):
13+
for _ in range(0, num_cases):
1414
cases += ' case ' + str(i) + ': return "' + str(i) + str(i) + str(i) + '";\n'
1515
i += incr
1616
incr = (incr % 5) + 1

tests/jsrun.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
DEFAULT_TIMEOUT = 5 * 60
1717

1818

19-
def make_command(filename, engine, args=[]):
19+
def make_command(filename, engine, args=None):
20+
args = args or []
2021
# if no engine is needed, indicated by None, then there is a native executable
2122
# provided which we can just run
2223
if engine[0] is None:
@@ -85,7 +86,7 @@ def require_engine(engine):
8586
sys.exit(1)
8687

8788

88-
def run_js(filename, engine, args=[],
89+
def run_js(filename, engine, args=None,
8990
stdin=None, stdout=PIPE, stderr=None, cwd=None,
9091
full_output=False, assert_returncode=0, skip_check=False,
9192
timeout=DEFAULT_TIMEOUT):

tests/runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def get_all_tests(modules):
128128
def tests_with_expanded_wildcards(args, all_tests):
129129
# Process wildcards, e.g. "browser.test_pthread_*" should expand to list all pthread tests
130130
new_args = []
131-
for i, arg in enumerate(args):
131+
for arg in args:
132132
if '*' in arg:
133133
if arg.startswith('skip:'):
134134
arg = arg[5:]

tests/test_benchmark.py

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def prepare(self):
6565
def bench(self, args, output_parser=None, reps=TEST_REPS, expected_output=None):
6666
self.times = []
6767
self.reps = reps
68-
for i in range(reps):
68+
for _ in range(reps):
6969
start = time.time()
7070
output = self.run(args)
7171
if expected_output is not None and expected_output not in output:
@@ -125,13 +125,15 @@ def get_size_text(self):
125125

126126

127127
class NativeBenchmarker(Benchmarker):
128-
def __init__(self, name, cc, cxx, args=[OPTIMIZATIONS]):
128+
def __init__(self, name, cc, cxx, args=None):
129129
self.name = name
130130
self.cc = cc
131131
self.cxx = cxx
132-
self.args = args.copy()
132+
self.args = args or [OPTIMIZATIONS]
133133

134134
def build(self, parent, filename, args, shared_args, emcc_args, native_args, native_exec, lib_builder, has_output_parser):
135+
native_args = native_args or []
136+
shared_args = shared_args or []
135137
self.parent = parent
136138
if lib_builder:
137139
env = {'CC': self.cc, 'CXX': self.cxx, 'CXXFLAGS': "-Wno-c++11-narrowing"}
@@ -173,15 +175,17 @@ def run_binaryen_opts(filename, opts):
173175

174176

175177
class EmscriptenBenchmarker(Benchmarker):
176-
def __init__(self, name, engine, extra_args=[], env={}, binaryen_opts=[]):
178+
def __init__(self, name, engine, extra_args=None, env=None, binaryen_opts=None):
177179
self.name = name
178180
self.engine = engine
179-
self.extra_args = extra_args.copy()
181+
self.extra_args = extra_args or []
180182
self.env = os.environ.copy()
181-
self.env.update(env)
182-
self.binaryen_opts = binaryen_opts.copy()
183+
if env:
184+
self.env.update(env)
185+
self.binaryen_opts = binaryen_opts or []
183186

184187
def build(self, parent, filename, args, shared_args, emcc_args, native_args, native_exec, lib_builder, has_output_parser):
188+
emcc_args = emcc_args or []
185189
self.filename = filename
186190
llvm_root = self.env.get('LLVM') or config.LLVM_ROOT
187191
if lib_builder:
@@ -190,7 +194,7 @@ def build(self, parent, filename, args, shared_args, emcc_args, native_args, nat
190194
# systems (like zlib) if they see a CFLAGS it will override all their
191195
# default flags, including optimizations.
192196
env_init['CFLAGS'] = ' '.join(LLVM_FEATURE_FLAGS + [OPTIMIZATIONS] + self.extra_args)
193-
emcc_args = emcc_args + lib_builder('js_' + llvm_root, native=False, env_init=env_init)
197+
emcc_args += lib_builder('js_' + llvm_root, native=False, env_init=env_init)
194198
final = os.path.dirname(filename) + os.path.sep + self.name + ('_' if self.name else '') + os.path.basename(filename) + '.js'
195199
final = final.replace('.cpp', '')
196200
try_delete(final)
@@ -201,7 +205,9 @@ def build(self, parent, filename, args, shared_args, emcc_args, native_args, nat
201205
'-sENVIRONMENT=node,shell',
202206
'-sBENCHMARK=%d' % (1 if IGNORE_COMPILATION and not has_output_parser else 0),
203207
'-o', final
204-
] + shared_args + LLVM_FEATURE_FLAGS
208+
] + LLVM_FEATURE_FLAGS
209+
if shared_args:
210+
cmd += shared_args
205211
if common.EMTEST_FORCE64:
206212
cmd += ['--profiling']
207213
else:
@@ -281,11 +287,11 @@ def get_output_files(self):
281287

282288

283289
class CheerpBenchmarker(Benchmarker):
284-
def __init__(self, name, engine, args=[OPTIMIZATIONS], binaryen_opts=[]):
290+
def __init__(self, name, engine, args=None, binaryen_opts=None):
285291
self.name = name
286292
self.engine = engine
287-
self.args = args.copy()
288-
self.binaryen_opts = binaryen_opts.copy()
293+
self.args = args or [OPTIMIZATIONS]
294+
self.binaryen_opts = binaryen_opts or []
289295

290296
def build(self, parent, filename, args, shared_args, emcc_args, native_args, native_exec, lib_builder, has_output_parser):
291297
cheerp_args = [
@@ -435,8 +441,8 @@ def hardcode_arguments(self, code):
435441
''' % DEFAULT_ARG
436442
return code
437443

438-
def do_benchmark(self, name, src, expected_output='FAIL', args=[],
439-
emcc_args=[], native_args=[], shared_args=[],
444+
def do_benchmark(self, name, src, expected_output='FAIL', args=None,
445+
emcc_args=None, native_args=None, shared_args=None,
440446
force_c=False, reps=TEST_REPS, native_exec=None,
441447
output_parser=None, args_processor=None, lib_builder=None,
442448
skip_native=False):
@@ -809,7 +815,7 @@ def zzz_test_corrections64(self):
809815
'''
810816
self.do_benchmark('corrections64', src, 'final:')
811817

812-
def fasta(self, name, double_rep, emcc_args=[]):
818+
def fasta(self, name, double_rep):
813819
src = read_file(test_file('fasta.cpp')).replace('double', double_rep)
814820
src = src.replace(' const size_t n = ( argc > 1 ) ? atoi( argv[1] ) : 512;', '''
815821
int n;

0 commit comments

Comments
 (0)