Skip to content

Commit da8fe5f

Browse files
authored
Use nested parameterization in test_sdl_key. NFC (#20738)
I'm tying this out as an experiment. I think it improves things in several ways: - Increases precision of tests - Aids in debugging (makes run just one code path much easier) - Cleaner test output as tests no longer have to `print()` each time they go around the loop (which was a crutch to help identify which iteration failed). Now this single test has 8 different configurations (the 9th test here, test_sdl_key_proxy, is actually a different test): ``` $ ./test/runner browser.test_sdl_key* Test suites: ['test_browser'] Running test_browser: (9 tests) (checking sanity from test runner) shared:INFO: (Emscripten: Running sanity checks) [Browser harness server on process 858049] common:INFO: Using default system browser Running the browser tests. Make sure the browser allows popups from localhost. test_sdl_key (test_browser.browser.test_sdl_key) ... ok test_sdl_key_asyncify (test_browser.browser.test_sdl_key_asyncify) ... ok test_sdl_key_asyncify_eventhandler (test_browser.browser.test_sdl_key_asyncify_eventhandler) ... ok test_sdl_key_delay (test_browser.browser.test_sdl_key_delay) ... ok test_sdl_key_delay_asyncify (test_browser.browser.test_sdl_key_delay_asyncify) ... ok test_sdl_key_delay_asyncify_eventhandler (test_browser.browser.test_sdl_key_delay_asyncify_eventhandler) ... ok test_sdl_key_delay_eventhandler (test_browser.browser.test_sdl_key_delay_eventhandler) ... ok test_sdl_key_eventhandler (test_browser.browser.test_sdl_key_eventhandler) ... ok test_sdl_key_proxy (test_browser.browser.test_sdl_key_proxy) ... ok [Browser harness server terminated] ```
1 parent 97f37e1 commit da8fe5f

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

test/test_browser.py

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -903,44 +903,46 @@ def test_glgears_proxy_jstarget(self):
903903
def test_sdl_canvas_alpha(self):
904904
# N.B. On Linux with Intel integrated graphics cards, this test needs Firefox 49 or newer.
905905
# See https://github.com/emscripten-core/emscripten/issues/4069.
906-
create_file('flag_0.js', '''
907-
Module['arguments'] = ['-0'];
908-
''')
906+
create_file('flag_0.js', "Module['arguments'] = ['-0'];")
909907

910908
self.btest('test_sdl_canvas_alpha.c', args=['-lSDL', '-lGL'], reference='browser/test_sdl_canvas_alpha.png', reference_slack=12)
911909
self.btest('test_sdl_canvas_alpha.c', args=['--pre-js', 'flag_0.js', '-lSDL', '-lGL'], reference='browser/test_sdl_canvas_alpha_flag_0.png', reference_slack=12)
912910

913911
@parameterized({
914-
'': ([False],),
912+
'': ([],),
913+
'eventhandler': (['-DTEST_EMSCRIPTEN_SDL_SETEVENTHANDLER'],),
914+
})
915+
@parameterized({
916+
'': ([],),
917+
'asyncify': (['-DTEST_SLEEP', '-sASSERTIONS', '-sSAFE_HEAP', '-sASYNCIFY'],),
918+
})
919+
@parameterized({
920+
'': (False,),
915921
'delay': (True,)
916922
})
917-
def test_sdl_key(self, delay):
918-
for defines in [
919-
[],
920-
['-DTEST_EMSCRIPTEN_SDL_SETEVENTHANDLER']
921-
]:
922-
for async_ in [
923-
[],
924-
['-DTEST_SLEEP', '-sASSERTIONS', '-sSAFE_HEAP', '-sASYNCIFY']
925-
]:
926-
print(delay, defines, async_)
927-
928-
create_file('pre.js', '''
929-
function keydown(c) {
930-
%s
931-
var event = new KeyboardEvent("keydown", { 'keyCode': c, 'charCode': c, 'view': window, 'bubbles': true, 'cancelable': true });
932-
document.dispatchEvent(event);
933-
%s
934-
}
923+
def test_sdl_key(self, delay, async_, defines):
924+
if delay:
925+
settimeout_start = 'setTimeout(function() {'
926+
settimeout_end = '}, 1);'
927+
else:
928+
settimeout_start = ''
929+
settimeout_end = ''
930+
create_file('pre.js', '''
931+
function keydown(c) {
932+
%s
933+
var event = new KeyboardEvent("keydown", { 'keyCode': c, 'charCode': c, 'view': window, 'bubbles': true, 'cancelable': true });
934+
document.dispatchEvent(event);
935+
%s
936+
}
935937
936-
function keyup(c) {
937-
%s
938-
var event = new KeyboardEvent("keyup", { 'keyCode': c, 'charCode': c, 'view': window, 'bubbles': true, 'cancelable': true });
939-
document.dispatchEvent(event);
940-
%s
941-
}
942-
''' % ('setTimeout(function() {' if delay else '', '}, 1);' if delay else '', 'setTimeout(function() {' if delay else '', '}, 1);' if delay else ''))
943-
self.btest_exit('test_sdl_key.c', 223092870, args=defines + async_ + ['--pre-js=pre.js', '-lSDL', '-lGL'])
938+
function keyup(c) {
939+
%s
940+
var event = new KeyboardEvent("keyup", { 'keyCode': c, 'charCode': c, 'view': window, 'bubbles': true, 'cancelable': true });
941+
document.dispatchEvent(event);
942+
%s
943+
}
944+
''' % (settimeout_start, settimeout_end, settimeout_start, settimeout_end))
945+
self.btest_exit('test_sdl_key.c', 223092870, args=defines + async_ + ['--pre-js=pre.js', '-lSDL', '-lGL'])
944946

945947
def test_sdl_key_proxy(self):
946948
create_file('pre.js', '''

0 commit comments

Comments
 (0)