Skip to content

Commit 0caba52

Browse files
committed
[test] Improve test_sdl2_key. NFC
The TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER macro is copied over from `test_sdl_key.c` (the SDL1 version) but its not applicable with SDL2.
1 parent 24697df commit 0caba52

File tree

2 files changed

+11
-26
lines changed

2 files changed

+11
-26
lines changed

test/browser/test_sdl2_key.c

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ int EventHandler(void *userdata, SDL_Event *event) {
1919
break;
2020
case SDL_KEYDOWN:
2121
switch (event->key.keysym.sym) {
22-
case SDLK_RIGHT: printf("right\n"); result *= 7; break;
23-
case SDLK_LEFT: printf("left\n"); result *= 11; break;
24-
case SDLK_DOWN: printf("down\n"); result *= 13; break;
25-
case SDLK_UP: printf("up\n"); result *= 17; break;
26-
case SDLK_a: printf("a\n"); result *= 19; break;
22+
case SDLK_RIGHT: printf("KEYDOWN: right\n"); result *= 7; break;
23+
case SDLK_LEFT: printf("KEYDOWN: left\n"); result *= 11; break;
24+
case SDLK_DOWN: printf("KEYDOWN: down\n"); result *= 13; break;
25+
case SDLK_UP: printf("KEYDOWN: up\n"); result *= 17; break;
26+
case SDLK_a: printf("KEYDOWN: a\n"); result *= 19; break;
2727
default: {
2828
if (event->key.keysym.scancode == SDL_SCANCODE_B) {
29-
printf("b scancode\n"); result *= 23; break;
29+
printf("KEYDOWN: b scancode\n"); result *= 23; break;
3030
}
3131
printf("unknown key: sym %d scancode %d\n", event->key.keysym.sym, event->key.keysym.scancode);
3232
emscripten_force_exit(result); // comment this out to leave event handling active. Use the following to log DOM keys:
@@ -35,8 +35,9 @@ int EventHandler(void *userdata, SDL_Event *event) {
3535
}
3636
break;
3737
case SDL_TEXTINPUT:
38+
printf("TEXTINPUT: %c\n", event->text.text[0]);
3839
if (event->text.text[0] == 'A') {
39-
printf("a\n");result *= 5;
40+
result *= 5;
4041
}
4142
break;
4243
default: /* Report an unhandled event */
@@ -45,13 +46,11 @@ int EventHandler(void *userdata, SDL_Event *event) {
4546
return 0;
4647
}
4748

48-
void one() {
49-
#ifndef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
49+
void pump_events() {
5050
SDL_Event event;
5151
while (SDL_PollEvent(&event)) {
5252
EventHandler(0, &event);
5353
}
54-
#endif
5554
}
5655

5756
int main(int argc, char **argv) {
@@ -61,12 +60,6 @@ int main(int argc, char **argv) {
6160
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
6261
640, 480, 0);
6362

64-
#ifdef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
65-
emscripten_SDL_SetEventHandler(EventHandler, 0);
66-
#else
67-
one();
68-
#endif
69-
7063
SDL_StartTextInput();
7164

7265
emscripten_run_script("keydown(38);keyup(38)"); // up
@@ -77,7 +70,7 @@ int main(int argc, char **argv) {
7770
emscripten_run_script("keydown(66);keyup(66);"); // b
7871
emscripten_run_script("keydown(100);keyup(100);"); // trigger the end
7972

80-
emscripten_exit_with_live_runtime();
73+
emscripten_set_main_loop(pump_events, 3, 0);
8174
return 99;
8275
}
8376

test/test_browser.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3041,14 +3041,6 @@ def test_sdl2_image_formats(self):
30413041
@no_wasm64('SDL2 + wasm64')
30423042
def test_sdl2_key(self):
30433043
create_file('pre.js', '''
3044-
Module.postRun = () => {
3045-
function doOne() {
3046-
Module._one();
3047-
setTimeout(doOne, 1000/60);
3048-
}
3049-
setTimeout(doOne, 1000/60);
3050-
}
3051-
30523044
function keydown(c) {
30533045
var event = new KeyboardEvent("keydown", { 'keyCode': c, 'charCode': c, 'view': window, 'bubbles': true, 'cancelable': true });
30543046
var prevented = !document.dispatchEvent(event);
@@ -3066,7 +3058,7 @@ def test_sdl2_key(self):
30663058
}
30673059
''')
30683060

3069-
self.btest_exit('test_sdl2_key.c', 37182145, args=['-sUSE_SDL=2', '--pre-js', 'pre.js', '-sEXPORTED_FUNCTIONS=_main,_one'])
3061+
self.btest_exit('test_sdl2_key.c', 37182145, args=['-sUSE_SDL=2', '--pre-js', 'pre.js'])
30703062

30713063
@no_wasm64('SDL2 + wasm64')
30723064
def test_sdl2_text(self):

0 commit comments

Comments
 (0)