Skip to content

Commit ad6e356

Browse files
authored
[tests] Improve dylink_testf. NFC (#14992)
Using the default for side module and output filename mean call sites don't need so much boilerplate.
1 parent 871390a commit ad6e356

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
success
File renamed without changes.

tests/test_core.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3523,7 +3523,7 @@ def dylink_test(self, main, side, expected=None, header=None, force_c=False,
35233523

35243524
return self.dylink_testf(main, side, expected, force_c, main_module=main_module, **kwargs)
35253525

3526-
def dylink_testf(self, main, side, expected=None, force_c=False, main_emcc_args=[],
3526+
def dylink_testf(self, main, side=None, expected=None, force_c=False, main_emcc_args=[],
35273527
main_module=2,
35283528
so_name='liblib.so',
35293529
need_reverse=True, **kwargs):
@@ -3532,8 +3532,10 @@ def dylink_testf(self, main, side, expected=None, force_c=False, main_emcc_args=
35323532
old_args = self.emcc_args.copy()
35333533
if not expected:
35343534
outfile = shared.unsuffixed(main) + '.out'
3535-
if os.path.exists(outfile):
3536-
expected = read_file(outfile)
3535+
expected = read_file(outfile)
3536+
if not side:
3537+
side, ext = os.path.splitext(main)
3538+
side += '_side' + ext
35373539

35383540
# side settings
35393541
self.clear_setting('MAIN_MODULE')
@@ -4579,9 +4581,7 @@ def test_dylink_argv_argc(self):
45794581
def test_dylink_weak(self):
45804582
# Verify that weakly defined symbols can be defined in both side module and main
45814583
# module but that only one gets used at runtime.
4582-
main = test_file('core/test_dylink_weak_main.c')
4583-
side = test_file('core/test_dylink_weak_side.c')
4584-
self.dylink_testf(main, side, force_c=True, need_reverse=False)
4584+
self.dylink_testf(test_file('core/test_dylink_weak.c'), need_reverse=False)
45854585

45864586
@node_pthreads
45874587
@needs_dylink
@@ -4593,7 +4593,7 @@ def test_dylink_tls(self):
45934593
# TODO(sbc): Add tests that depend on importing/exported TLS symbols
45944594
# once we figure out how to do that.
45954595
self.emcc_args.append('-Wno-experimental')
4596-
self.dylink_testf(test_file('core/test_dylink_tls.c'), test_file('core/test_dylink_tls_side.c'),
4596+
self.dylink_testf(test_file('core/test_dylink_tls.c'),
45974597
need_reverse=False)
45984598

45994599
def test_random(self):
@@ -8405,15 +8405,13 @@ def test_pthread_dylink(self):
84058405
self.set_setting('LLD_REPORT_UNDEFINED')
84068406
self.set_setting('PTHREAD_POOL_SIZE', 2)
84078407
main = test_file('core/pthread/test_pthread_dylink.c')
8408-
side = test_file('core/pthread/test_pthread_dylink_side.c')
84098408

84108409
# test with a long .so name, as a regression test for
84118410
# https://github.com/emscripten-core/emscripten/issues/14833
84128411
# where we had a bug with long names + TextDecoder + pthreads + dylink
84138412
very_long_name = 'very_very_very_very_very_very_very_very_very_long.so'
84148413

8415-
self.dylink_testf(main, side, "success",
8416-
so_name=very_long_name,
8414+
self.dylink_testf(main, so_name=very_long_name,
84178415
need_reverse=False)
84188416

84198417
@needs_dylink
@@ -8424,8 +8422,7 @@ def test_pthread_dylink_tls(self):
84248422
self.set_setting('USE_PTHREADS')
84258423
self.set_setting('PTHREAD_POOL_SIZE=1')
84268424
main = test_file('core/pthread/test_pthread_dylink_tls.c')
8427-
side = test_file('core/pthread/test_pthread_dylink_tls_side.c')
8428-
self.dylink_testf(main, side, need_reverse=False)
8425+
self.dylink_testf(main, need_reverse=False)
84298426

84308427
@needs_dylink
84318428
@node_pthreads

0 commit comments

Comments
 (0)