Changeset 0680854 in mainline for uspace/lib/display/test/display.c
- Timestamp:
- 2020-03-20T15:42:27Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0b7e394
- Parents:
- aeb3037
- git-author:
- Jiri Svoboda <jiri@…> (2020-03-19 19:42:21)
- git-committer:
- Jiri Svoboda <jiri@…> (2020-03-20 15:42:27)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/test/display.c
raeb3037 r0680854 57 57 static errno_t test_window_destroy(void *, sysarg_t); 58 58 static errno_t test_window_move_req(void *, sysarg_t, gfx_coord2_t *); 59 static errno_t test_window_move(void *, sysarg_t, gfx_coord2_t *); 59 60 static errno_t test_window_resize_req(void *, sysarg_t, display_wnd_rsztype_t, 60 61 gfx_coord2_t *); … … 70 71 .window_destroy = test_window_destroy, 71 72 .window_move_req = test_window_move_req, 73 .window_move = test_window_move, 72 74 .window_resize_req = test_window_resize_req, 73 75 .window_resize = test_window_resize, … … 106 108 sysarg_t move_req_wnd_id; 107 109 gfx_coord2_t move_req_pos; 110 111 bool window_move_called; 112 sysarg_t move_wnd_id; 113 gfx_coord2_t move_dpos; 108 114 109 115 bool window_resize_req_called; … … 422 428 PCUT_ASSERT_INT_EQUALS(pos.x, resp.move_req_pos.x); 423 429 PCUT_ASSERT_INT_EQUALS(pos.y, resp.move_req_pos.y); 430 431 display_window_destroy(wnd); 432 display_close(disp); 433 rc = loc_service_unregister(sid); 434 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 435 } 436 437 /** display_window_move() with server returning error response works. */ 438 PCUT_TEST(window_move_failure) 439 { 440 errno_t rc; 441 service_id_t sid; 442 display_t *disp = NULL; 443 display_wnd_params_t params; 444 display_window_t *wnd; 445 gfx_coord2_t dpos; 446 test_response_t resp; 447 448 async_set_fallback_port_handler(test_display_conn, &resp); 449 450 // FIXME This causes this test to be non-reentrant! 451 rc = loc_server_register(test_display_server); 452 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 453 454 rc = loc_service_register(test_display_svc, &sid); 455 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 456 457 rc = display_open(test_display_svc, &disp); 458 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 459 PCUT_ASSERT_NOT_NULL(disp); 460 461 resp.rc = EOK; 462 display_wnd_params_init(¶ms); 463 params.rect.p0.x = 0; 464 params.rect.p0.y = 0; 465 params.rect.p0.x = 100; 466 params.rect.p0.y = 100; 467 468 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 469 (void *) &resp, &wnd); 470 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 471 PCUT_ASSERT_NOT_NULL(wnd); 472 473 resp.rc = EIO; 474 resp.window_move_called = false; 475 dpos.x = 11; 476 dpos.y = 12; 477 478 rc = display_window_move(wnd, &dpos); 479 PCUT_ASSERT_TRUE(resp.window_move_called); 480 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 481 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.move_wnd_id); 482 PCUT_ASSERT_INT_EQUALS(dpos.x, resp.move_dpos.x); 483 PCUT_ASSERT_INT_EQUALS(dpos.y, resp.move_dpos.y); 484 485 display_window_destroy(wnd); 486 display_close(disp); 487 rc = loc_service_unregister(sid); 488 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 489 } 490 491 /** display_window_move() with server returning success response works. */ 492 PCUT_TEST(window_move_success) 493 { 494 errno_t rc; 495 service_id_t sid; 496 display_t *disp = NULL; 497 display_wnd_params_t params; 498 display_window_t *wnd; 499 gfx_coord2_t dpos; 500 test_response_t resp; 501 502 async_set_fallback_port_handler(test_display_conn, &resp); 503 504 // FIXME This causes this test to be non-reentrant! 505 rc = loc_server_register(test_display_server); 506 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 507 508 rc = loc_service_register(test_display_svc, &sid); 509 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 510 511 rc = display_open(test_display_svc, &disp); 512 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 513 PCUT_ASSERT_NOT_NULL(disp); 514 515 resp.rc = EOK; 516 display_wnd_params_init(¶ms); 517 params.rect.p0.x = 0; 518 params.rect.p0.y = 0; 519 params.rect.p0.x = 100; 520 params.rect.p0.y = 100; 521 522 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 523 (void *) &resp, &wnd); 524 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 525 PCUT_ASSERT_NOT_NULL(wnd); 526 527 resp.rc = EOK; 528 resp.window_move_called = false; 529 dpos.x = 11; 530 dpos.y = 12; 531 532 rc = display_window_move(wnd, &dpos); 533 PCUT_ASSERT_TRUE(resp.window_move_called); 534 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 535 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.move_wnd_id); 536 PCUT_ASSERT_INT_EQUALS(dpos.x, resp.move_dpos.x); 537 PCUT_ASSERT_INT_EQUALS(dpos.y, resp.move_dpos.y); 424 538 425 539 display_window_destroy(wnd); … … 1352 1466 } 1353 1467 1468 static errno_t test_window_move(void *arg, sysarg_t wnd_id, gfx_coord2_t *dpos) 1469 { 1470 test_response_t *resp = (test_response_t *) arg; 1471 1472 resp->window_move_called = true; 1473 resp->move_wnd_id = wnd_id; 1474 resp->move_dpos = *dpos; 1475 return resp->rc; 1476 } 1477 1354 1478 static errno_t test_window_resize_req(void *arg, sysarg_t wnd_id, 1355 1479 display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
Note:
See TracChangeset
for help on using the changeset viewer.