Changeset a2e104e in mainline for uspace/lib/display/test/display.c
- Timestamp:
- 2020-03-05T11:23:41Z (5 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1e4a937
- Parents:
- 338d0935
- git-author:
- Jiri Svoboda <jiri@…> (2020-03-04 19:23:29)
- git-committer:
- Jiri Svoboda <jiri@…> (2020-03-05 11:23:41)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/test/display.c
r338d0935 ra2e104e 56 56 static errno_t test_window_create(void *, display_wnd_params_t *, sysarg_t *); 57 57 static errno_t test_window_destroy(void *, sysarg_t); 58 static errno_t test_window_move_req(void *, sysarg_t, gfx_coord2_t *); 58 59 static errno_t test_window_resize(void *, sysarg_t, gfx_coord2_t *, 59 60 gfx_rect_t *); … … 65 66 .window_create = test_window_create, 66 67 .window_destroy = test_window_destroy, 68 .window_move_req = test_window_move_req, 67 69 .window_resize = test_window_resize, 68 70 .get_event = test_get_event … … 94 96 bool window_destroy_called; 95 97 sysarg_t destroy_wnd_id; 98 99 bool window_move_req_called; 100 sysarg_t move_req_wnd_id; 101 gfx_coord2_t move_req_pos; 96 102 97 103 bool window_resize_called; … … 294 300 } 295 301 302 /** display_window_move_req() with server returning error response works. */ 303 PCUT_TEST(window_move_req_failure) 304 { 305 errno_t rc; 306 service_id_t sid; 307 display_t *disp = NULL; 308 display_wnd_params_t params; 309 display_window_t *wnd; 310 test_response_t resp; 311 gfx_coord2_t pos; 312 313 async_set_fallback_port_handler(test_display_conn, &resp); 314 315 // FIXME This causes this test to be non-reentrant! 316 rc = loc_server_register(test_display_server); 317 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 318 319 rc = loc_service_register(test_display_svc, &sid); 320 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 321 322 rc = display_open(test_display_svc, &disp); 323 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 324 PCUT_ASSERT_NOT_NULL(disp); 325 326 resp.rc = EOK; 327 display_wnd_params_init(¶ms); 328 params.rect.p0.x = 0; 329 params.rect.p0.y = 0; 330 params.rect.p0.x = 100; 331 params.rect.p0.y = 100; 332 333 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 334 (void *) &resp, &wnd); 335 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 336 PCUT_ASSERT_NOT_NULL(wnd); 337 338 resp.rc = EIO; 339 resp.window_move_req_called = false; 340 341 pos.x = 42; 342 pos.y = 43; 343 344 rc = display_window_move_req(wnd, &pos); 345 PCUT_ASSERT_TRUE(resp.window_move_req_called); 346 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 347 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.move_req_wnd_id); 348 PCUT_ASSERT_INT_EQUALS(pos.x, resp.move_req_pos.x); 349 PCUT_ASSERT_INT_EQUALS(pos.y, resp.move_req_pos.y); 350 351 display_window_destroy(wnd); 352 display_close(disp); 353 rc = loc_service_unregister(sid); 354 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 355 } 356 357 /** display_window_move_req() with server returning success response works. */ 358 PCUT_TEST(window_move_req_success) 359 { 360 errno_t rc; 361 service_id_t sid; 362 display_t *disp = NULL; 363 display_wnd_params_t params; 364 display_window_t *wnd; 365 test_response_t resp; 366 gfx_coord2_t pos; 367 368 async_set_fallback_port_handler(test_display_conn, &resp); 369 370 // FIXME This causes this test to be non-reentrant! 371 rc = loc_server_register(test_display_server); 372 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 373 374 rc = loc_service_register(test_display_svc, &sid); 375 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 376 377 rc = display_open(test_display_svc, &disp); 378 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 379 PCUT_ASSERT_NOT_NULL(disp); 380 381 resp.rc = EOK; 382 display_wnd_params_init(¶ms); 383 params.rect.p0.x = 0; 384 params.rect.p0.y = 0; 385 params.rect.p0.x = 100; 386 params.rect.p0.y = 100; 387 388 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 389 (void *) &resp, &wnd); 390 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 391 PCUT_ASSERT_NOT_NULL(wnd); 392 393 resp.rc = EOK; 394 resp.window_move_req_called = false; 395 396 pos.x = 42; 397 pos.y = 43; 398 399 rc = display_window_move_req(wnd, &pos); 400 PCUT_ASSERT_TRUE(resp.window_move_req_called); 401 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 402 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.move_req_wnd_id); 403 PCUT_ASSERT_INT_EQUALS(pos.x, resp.move_req_pos.x); 404 PCUT_ASSERT_INT_EQUALS(pos.y, resp.move_req_pos.y); 405 406 display_window_destroy(wnd); 407 display_close(disp); 408 rc = loc_service_unregister(sid); 409 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 410 } 411 296 412 /** display_window_resize() with server returning error response works. */ 297 413 PCUT_TEST(window_resize_failure) … … 1013 1129 } 1014 1130 1131 static errno_t test_window_move_req(void *arg, sysarg_t wnd_id, 1132 gfx_coord2_t *pos) 1133 { 1134 test_response_t *resp = (test_response_t *) arg; 1135 1136 resp->window_move_req_called = true; 1137 resp->move_req_wnd_id = wnd_id; 1138 resp->move_req_pos = *pos; 1139 return resp->rc; 1140 } 1141 1015 1142 static errno_t test_window_resize(void *arg, sysarg_t wnd_id, 1016 1143 gfx_coord2_t *offs, gfx_rect_t *nrect)
Note:
See TracChangeset
for help on using the changeset viewer.