Skip to content

Commit 43c6f03

Browse files
authored
Add assertions to test_html5_core. NFC (#23533)
Fixes: #23530
1 parent 765184a commit 43c6f03

File tree

1 file changed

+49
-43
lines changed

1 file changed

+49
-43
lines changed

test/test_html5_core.c

Lines changed: 49 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* found in the LICENSE file.
66
*/
77

8+
#include <assert.h>
89
#include <stdio.h>
910
#include <emscripten.h>
1011
#include <string.h>
@@ -34,8 +35,12 @@ const char *emscripten_result_to_string(EMSCRIPTEN_RESULT result) {
3435
return "Unknown EMSCRIPTEN_RESULT!";
3536
}
3637

38+
// Report API failure
3739
#define TEST_RESULT(x) if (ret != EMSCRIPTEN_RESULT_SUCCESS) printf("%s returned %s.\n", #x, emscripten_result_to_string(ret));
3840

41+
// Like above above but also assert API success
42+
#define ASSERT_RESULT(x) TEST_RESULT(x); assert(ret == EMSCRIPTEN_RESULT_SUCCESS);
43+
3944
// The event handler functions can return 1 to suppress the event and disable the default action. That calls event.preventDefault();
4045
// Returning 0 signals that the event was not consumed by the code, and will allow the event to pass on and bubble up normally.
4146
bool key_callback(int eventType, const EmscriptenKeyboardEvent *e, void *userData) {
@@ -230,67 +235,66 @@ void test_done(void *arg) {
230235

231236
int main() {
232237
EMSCRIPTEN_RESULT ret = emscripten_set_keypress_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, key_callback);
233-
TEST_RESULT(emscripten_set_keypress_callback);
238+
ASSERT_RESULT(emscripten_set_keypress_callback);
234239
ret = emscripten_set_keydown_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, key_callback);
235-
TEST_RESULT(emscripten_set_keydown_callback);
240+
ASSERT_RESULT(emscripten_set_keydown_callback);
236241
ret = emscripten_set_keyup_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, key_callback);
237-
TEST_RESULT(emscripten_set_keyup_callback);
242+
ASSERT_RESULT(emscripten_set_keyup_callback);
238243

239244
ret = emscripten_set_click_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
240-
TEST_RESULT(emscripten_set_click_callback);
245+
ASSERT_RESULT(emscripten_set_click_callback);
241246
ret = emscripten_set_mousedown_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
242-
TEST_RESULT(emscripten_set_mousedown_callback);
247+
ASSERT_RESULT(emscripten_set_mousedown_callback);
243248
ret = emscripten_set_mouseup_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
244-
TEST_RESULT(emscripten_set_mouseup_callback);
249+
ASSERT_RESULT(emscripten_set_mouseup_callback);
245250
ret = emscripten_set_dblclick_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
246-
TEST_RESULT(emscripten_set_dblclick_callback);
251+
ASSERT_RESULT(emscripten_set_dblclick_callback);
247252
ret = emscripten_set_mousemove_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
248-
TEST_RESULT(emscripten_set_mousemove_callback);
253+
ASSERT_RESULT(emscripten_set_mousemove_callback);
249254
ret = emscripten_set_mouseenter_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
250-
TEST_RESULT(emscripten_set_mouseenter_callback);
255+
ASSERT_RESULT(emscripten_set_mouseenter_callback);
251256
ret = emscripten_set_mouseleave_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
252-
TEST_RESULT(emscripten_set_mouseleave_callback);
257+
ASSERT_RESULT(emscripten_set_mouseleave_callback);
253258
ret = emscripten_set_mouseover_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
254-
TEST_RESULT(emscripten_set_mouseover_callback);
259+
ASSERT_RESULT(emscripten_set_mouseover_callback);
255260
ret = emscripten_set_mouseout_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, mouse_callback);
256-
TEST_RESULT(emscripten_set_mouseout_callback);
261+
ASSERT_RESULT(emscripten_set_mouseout_callback);
257262

258263
ret = emscripten_set_wheel_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, wheel_callback);
259-
TEST_RESULT(emscripten_set_wheel_callback);
264+
ASSERT_RESULT(emscripten_set_wheel_callback);
260265

261266
ret = emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, uievent_callback);
262-
TEST_RESULT(emscripten_set_resize_callback);
267+
ASSERT_RESULT(emscripten_set_resize_callback);
263268
ret = emscripten_set_scroll_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, 0, 1, uievent_callback);
264-
TEST_RESULT(emscripten_set_scroll_callback);
269+
ASSERT_RESULT(emscripten_set_scroll_callback);
265270

266271
ret = emscripten_set_blur_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, focusevent_callback);
267-
TEST_RESULT(emscripten_set_blur_callback);
272+
ASSERT_RESULT(emscripten_set_blur_callback);
268273
ret = emscripten_set_focus_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, focusevent_callback);
269-
TEST_RESULT(emscripten_set_focus_callback);
274+
ASSERT_RESULT(emscripten_set_focus_callback);
270275
ret = emscripten_set_focusin_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, focusevent_callback);
271-
TEST_RESULT(emscripten_set_focusin_callback);
276+
ASSERT_RESULT(emscripten_set_focusin_callback);
272277
ret = emscripten_set_focusout_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, focusevent_callback);
273-
TEST_RESULT(emscripten_set_focusout_callback);
278+
ASSERT_RESULT(emscripten_set_focusout_callback);
274279

275280
ret = emscripten_set_deviceorientation_callback(0, 1, deviceorientation_callback);
276-
TEST_RESULT(emscripten_set_deviceorientation_callback);
281+
ASSERT_RESULT(emscripten_set_deviceorientation_callback);
277282
ret = emscripten_set_devicemotion_callback(0, 1, devicemotion_callback);
278-
TEST_RESULT(emscripten_set_devicemotion_callback);
283+
ASSERT_RESULT(emscripten_set_devicemotion_callback);
279284

280285
ret = emscripten_set_orientationchange_callback(0, 1, orientationchange_callback);
281-
TEST_RESULT(emscripten_set_orientationchange_callback);
286+
ASSERT_RESULT(emscripten_set_orientationchange_callback);
282287

283288
// Test the polling of orientation.
284289
EmscriptenOrientationChangeEvent oce;
285290
ret = emscripten_get_orientation_status(&oce);
286-
TEST_RESULT(emscripten_get_orientation_status);
291+
ASSERT_RESULT(emscripten_get_orientation_status);
287292
if (ret == EMSCRIPTEN_RESULT_SUCCESS) {
288293
printf("The current orientation is:\n");
289294
orientationchange_callback(EMSCRIPTEN_EVENT_ORIENTATIONCHANGE, &oce, 0);
290295
}
291296

292-
int newOrientation = (oce.orientationIndex == EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY
293-
|| oce.orientationIndex == EMSCRIPTEN_ORIENTATION_PORTRAIT_SECONDARY) ? EMSCRIPTEN_ORIENTATION_LANDSCAPE_PRIMARY : EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY;
297+
int newOrientation = (oce.orientationIndex == EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY || oce.orientationIndex == EMSCRIPTEN_ORIENTATION_PORTRAIT_SECONDARY) ? EMSCRIPTEN_ORIENTATION_LANDSCAPE_PRIMARY : EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY;
294298
// Test locking of orientation.
295299
ret = emscripten_lock_orientation(newOrientation);
296300
TEST_RESULT(emscripten_lock_orientation);
@@ -299,7 +303,7 @@ int main() {
299303
}
300304

301305
ret = emscripten_get_orientation_status(&oce);
302-
TEST_RESULT(emscripten_get_orientation_status);
306+
ASSERT_RESULT(emscripten_get_orientation_status);
303307
if (ret == EMSCRIPTEN_RESULT_SUCCESS) {
304308
printf("The current orientation is after locking:\n");
305309
orientationchange_callback(18, &oce, 0);
@@ -313,39 +317,39 @@ int main() {
313317

314318
EmscriptenFullscreenChangeEvent fsce;
315319
ret = emscripten_get_fullscreen_status(&fsce);
316-
TEST_RESULT(emscripten_get_fullscreen_status);
320+
ASSERT_RESULT(emscripten_get_fullscreen_status);
317321
if (ret == EMSCRIPTEN_RESULT_SUCCESS) {
318322
printf("The current fullscreen status is:\n");
319323
fullscreenchange_callback(EMSCRIPTEN_EVENT_FULLSCREENCHANGE, &fsce, 0);
320324
}
321325

322326
ret = emscripten_set_fullscreenchange_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, 0, 1, fullscreenchange_callback);
323-
TEST_RESULT(emscripten_set_fullscreenchange_callback);
327+
ASSERT_RESULT(emscripten_set_fullscreenchange_callback);
324328

325329
// These won't do anything, since fullscreen must be requested in an event handler,
326330
// but call these anyways to confirm that they don't crash in an exception in the test suite.
327331
ret = emscripten_request_fullscreen("#canvas", 1);
328332
TEST_RESULT(emscripten_request_fullscreen);
329333
ret = emscripten_exit_fullscreen();
330-
TEST_RESULT(emscripten_exit_fullscreen);
334+
ASSERT_RESULT(emscripten_exit_fullscreen);
331335

332336
EmscriptenPointerlockChangeEvent plce;
333337
ret = emscripten_get_pointerlock_status(&plce);
334-
TEST_RESULT(emscripten_get_pointerlock_status);
338+
ASSERT_RESULT(emscripten_get_pointerlock_status);
335339
if (ret == EMSCRIPTEN_RESULT_SUCCESS) {
336340
printf("The current pointerlock status is:\n");
337341
pointerlockchange_callback(EMSCRIPTEN_EVENT_POINTERLOCKCHANGE, &plce, 0);
338342
}
339343

340344
ret = emscripten_set_pointerlockchange_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, 0, 1, pointerlockchange_callback);
341-
TEST_RESULT(emscripten_set_pointerlockchange_callback);
345+
ASSERT_RESULT(emscripten_set_pointerlockchange_callback);
342346

343347
// These won't do anything, since pointer lock must be requested in an event handler,
344348
// but call these anyways to confirm that they don't crash in an exception in the test suite.
345349
ret = emscripten_request_pointerlock("#canvas", 1);
346350
TEST_RESULT(emscripten_request_pointerlock);
347351
ret = emscripten_exit_pointerlock();
348-
TEST_RESULT(emscripten_exit_pointerlock);
352+
ASSERT_RESULT(emscripten_exit_pointerlock);
349353

350354
int vibratePattern[] = {
351355
150, 500,
@@ -357,27 +361,29 @@ int main() {
357361

358362
EmscriptenVisibilityChangeEvent vce;
359363
ret = emscripten_get_visibility_status(&vce);
360-
TEST_RESULT(emscripten_get_visibility_status);
364+
ASSERT_RESULT(emscripten_get_visibility_status);
361365
if (ret == EMSCRIPTEN_RESULT_SUCCESS) {
362366
printf("Current visibility status:\n");
363367
visibilitychange_callback(EMSCRIPTEN_EVENT_VISIBILITYCHANGE, &vce, 0);
364368
}
365369

366370
ret = emscripten_set_visibilitychange_callback(0, 1, visibilitychange_callback);
367-
TEST_RESULT(emscripten_set_visibilitychange_callback);
371+
ASSERT_RESULT(emscripten_set_visibilitychange_callback);
368372

369373
ret = emscripten_set_touchstart_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, touch_callback);
370-
TEST_RESULT(emscripten_set_touchstart_callback);
374+
ASSERT_RESULT(emscripten_set_touchstart_callback);
371375
ret = emscripten_set_touchend_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, touch_callback);
372-
TEST_RESULT(emscripten_set_touchend_callback);
376+
ASSERT_RESULT(emscripten_set_touchend_callback);
373377
ret = emscripten_set_touchmove_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, touch_callback);
374-
TEST_RESULT(emscripten_set_touchmove_callback);
378+
ASSERT_RESULT(emscripten_set_touchmove_callback);
375379
ret = emscripten_set_touchcancel_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 1, touch_callback);
376-
TEST_RESULT(emscripten_set_touchcancel_callback);
380+
ASSERT_RESULT(emscripten_set_touchcancel_callback);
377381

378382
ret = emscripten_set_beforeunload_callback(0, beforeunload_callback);
379-
TEST_RESULT(emscripten_set_beforeunload_callback);
383+
ASSERT_RESULT(emscripten_set_beforeunload_callback);
380384

385+
// Use TEST_RESULT rather than ASSERT_RESULT for battery status since
386+
// not all machines support this API.
381387
ret = emscripten_set_batterychargingchange_callback(0, battery_callback);
382388
TEST_RESULT(emscripten_set_batterychargingchange_callback);
383389
ret = emscripten_set_batterylevelchange_callback(0, battery_callback);
@@ -392,21 +398,21 @@ int main() {
392398
}
393399

394400
ret = emscripten_set_webglcontextlost_callback("#canvas", 0, 1, webglcontext_callback);
395-
TEST_RESULT(emscripten_set_webglcontextlost_callback);
401+
ASSERT_RESULT(emscripten_set_webglcontextlost_callback);
396402
ret = emscripten_set_webglcontextrestored_callback("#canvas", 0, 1, webglcontext_callback);
397-
TEST_RESULT(emscripten_set_webglcontextrestored_callback);
403+
ASSERT_RESULT(emscripten_set_webglcontextrestored_callback);
398404

399405
char *source_window_title = "test window title Äあ🙂";
400406
emscripten_set_window_title(source_window_title);
401407
char *current_window_title = emscripten_get_window_title();
402408
ret = (strcmp(source_window_title, current_window_title) == 0 \
403409
? EMSCRIPTEN_RESULT_SUCCESS : EMSCRIPTEN_RESULT_FAILED);
404-
TEST_RESULT(emscripten_get_window_title);
410+
ASSERT_RESULT(emscripten_get_window_title);
405411

406412
int width, height;
407413
emscripten_get_screen_size(&width, &height);
408414
ret = (width && height) ? EMSCRIPTEN_RESULT_SUCCESS : EMSCRIPTEN_RESULT_FAILED;
409-
TEST_RESULT(emscripten_get_screen_size);
415+
ASSERT_RESULT(emscripten_get_screen_size);
410416

411417
#ifdef KEEP_ALIVE
412418
emscripten_exit_with_live_runtime();

0 commit comments

Comments
 (0)