Skip to content

Commit 3187922

Browse files
authored
Add RunnerCore.clear_setting to clear settings (#7655)
This avoids having to set settings back to their default value which results in longer command lines than necessary.
1 parent f968541 commit 3187922

File tree

2 files changed

+27
-19
lines changed

2 files changed

+27
-19
lines changed

tests/runner.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -364,13 +364,21 @@ def get_setting(self, key):
364364
return self.settings_mods[key]
365365
return Settings[key]
366366

367-
def set_setting(self, key, value):
367+
def set_setting(self, key, value=1):
368+
if value is None:
369+
self.clear_setting(key)
368370
self.settings_mods[key] = value
369371

372+
def clear_setting(self, key):
373+
self.settings_mods.pop(key, None)
374+
370375
def serialize_settings(self):
371376
ret = []
372377
for key, value in self.settings_mods.items():
373-
ret += ['-s', '{}={}'.format(key, json.dumps(value))]
378+
if value == 1:
379+
ret += ['-s', key]
380+
else:
381+
ret += ['-s', '{}={}'.format(key, json.dumps(value))]
374382
return ret
375383

376384
def get_dir(self):
@@ -845,9 +853,9 @@ def _test_dylink_dso_needed(self, do_run):
845853

846854
# _test_dylink_dso_needed can be potentially called several times by a test.
847855
# reset dylink-related options first.
848-
self.set_setting('MAIN_MODULE', 0)
849-
self.set_setting('SIDE_MODULE', 0)
850-
self.set_setting('RUNTIME_LINKED_LIBS', [])
856+
self.clear_setting('MAIN_MODULE')
857+
self.clear_setting('SIDE_MODULE')
858+
self.clear_setting('RUNTIME_LINKED_LIBS')
851859

852860
# XXX in wasm each lib load currently takes 5MB; default TOTAL_MEMORY=16MB is thus not enough
853861
self.set_setting('TOTAL_MEMORY', 32 * 1024 * 1024)

tests/test_core.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2394,14 +2394,14 @@ def test_nestedstructs(self):
23942394
self.do_run(src, '*16,0,4,8,8,12|20,0,4,4,8,12,12,16|24,0,20,0,4,4,8,12,12,16*\n*0,0,0,1,2,64,68,69,72*\n*2*')
23952395

23962396
def prep_dlfcn_lib(self):
2397-
self.set_setting('MAIN_MODULE', 0)
2398-
self.set_setting('SIDE_MODULE', 1)
2399-
self.set_setting('EXPORT_ALL', 1)
2397+
self.clear_setting('MAIN_MODULE')
2398+
self.set_setting('SIDE_MODULE')
2399+
self.set_setting('EXPORT_ALL')
24002400

24012401
def prep_dlfcn_main(self):
2402-
self.set_setting('MAIN_MODULE', 1)
2403-
self.set_setting('SIDE_MODULE', 0)
2404-
self.set_setting('EXPORT_ALL', 1)
2402+
self.set_setting('MAIN_MODULE')
2403+
self.clear_setting('SIDE_MODULE')
2404+
self.set_setting('EXPORT_ALL')
24052405

24062406
with open('lib_so_pre.js', 'w') as f:
24072407
f.write('''
@@ -3319,9 +3319,9 @@ def indir(name):
33193319
self.build_dlfcn_lib(libecho % {'libname': 'b'}, dirname, indir('b.cpp'))
33203320
shutil.move(indir('liblib.so'), indir('libb.so'))
33213321

3322-
self.set_setting('MAIN_MODULE', 1)
3323-
self.set_setting('SIDE_MODULE', 0)
3324-
self.set_setting('EXPORT_ALL', 1)
3322+
self.set_setting('MAIN_MODULE')
3323+
self.clear_setting('SIDE_MODULE')
3324+
self.set_setting('EXPORT_ALL')
33253325
self.emcc_args += ['--embed-file', '.@/']
33263326

33273327
# XXX in wasm each lib load currently takes 5MB; default TOTAL_MEMORY=16MB is thus not enough
@@ -3362,8 +3362,8 @@ def dylink_test(self, main, side, expected, header=None, main_emcc_args=[], forc
33623362
old_args = self.emcc_args[:]
33633363

33643364
# side settings
3365-
self.set_setting('MAIN_MODULE', 0)
3366-
self.set_setting('SIDE_MODULE', 1)
3365+
self.clear_setting('MAIN_MODULE')
3366+
self.set_setting('SIDE_MODULE')
33673367
print(self.is_wasm())
33683368
side_suffix = 'wasm' if self.is_wasm() else 'js'
33693369
if isinstance(side, list):
@@ -3383,8 +3383,8 @@ def dylink_test(self, main, side, expected, header=None, main_emcc_args=[], forc
33833383
shutil.move('liblib.cpp.o.' + side_suffix, 'liblib.so')
33843384

33853385
# main settings
3386-
self.set_setting('MAIN_MODULE', 1)
3387-
self.set_setting('SIDE_MODULE', 0)
3386+
self.set_setting('MAIN_MODULE')
3387+
self.clear_setting('SIDE_MODULE')
33883388
if auto_load:
33893389
self.set_setting('RUNTIME_LINKED_LIBS', ['liblib.so'])
33903390
self.emcc_args += main_emcc_args
@@ -4062,7 +4062,7 @@ def test_dylink_hyper_dupe(self):
40624062
printf("only_in_third_1: %d, %d, %d, %d\n", sidef(), sideg, second_to_third, x);
40634063
}
40644064
''')
4065-
run_process([PYTHON, EMCC, 'third.cpp', '-s', 'SIDE_MODULE=1', '-s', 'EXPORT_ALL=1'] + self.get_emcc_args() + ['-o', 'third' + dylib_suffix])
4065+
run_process([PYTHON, EMCC, 'third.cpp', '-s', 'SIDE_MODULE', '-s', 'EXPORT_ALL'] + self.get_emcc_args() + ['-o', 'third' + dylib_suffix])
40664066

40674067
self.dylink_test(main=r'''
40684068
#include <stdio.h>

0 commit comments

Comments
 (0)