Changeset 6baab83 in mainline for uspace/lib/display/test/display.c
- Timestamp:
- 2021-05-27T17:00:30Z (4 years ago)
- Children:
- b4b4dafe
- Parents:
- f2416ec3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/test/display.c
rf2416ec3 r6baab83 1 1 /* 2 * Copyright (c) 20 19Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 59 59 static errno_t test_window_move_req(void *, sysarg_t, gfx_coord2_t *); 60 60 static errno_t test_window_move(void *, sysarg_t, gfx_coord2_t *); 61 static errno_t test_window_get_pos(void *, sysarg_t, gfx_coord2_t *); 61 62 static errno_t test_window_resize_req(void *, sysarg_t, display_wnd_rsztype_t, 62 63 gfx_coord2_t *); … … 74 75 .window_move_req = test_window_move_req, 75 76 .window_move = test_window_move, 77 .window_get_pos = test_window_get_pos, 76 78 .window_resize_req = test_window_resize_req, 77 79 .window_resize = test_window_resize, … … 115 117 sysarg_t move_wnd_id; 116 118 gfx_coord2_t move_dpos; 119 120 bool window_get_pos_called; 121 sysarg_t get_pos_wnd_id; 122 gfx_coord2_t get_pos_rpos; 117 123 118 124 bool window_resize_req_called; … … 556 562 } 557 563 564 /** display_window_get_pos() with server returning error response works. */ 565 PCUT_TEST(window_get_pos_failure) 566 { 567 errno_t rc; 568 service_id_t sid; 569 display_t *disp = NULL; 570 display_wnd_params_t params; 571 display_window_t *wnd; 572 gfx_coord2_t dpos; 573 test_response_t resp; 574 575 async_set_fallback_port_handler(test_display_conn, &resp); 576 577 // FIXME This causes this test to be non-reentrant! 578 rc = loc_server_register(test_display_server); 579 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 580 581 rc = loc_service_register(test_display_svc, &sid); 582 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 583 584 rc = display_open(test_display_svc, &disp); 585 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 586 PCUT_ASSERT_NOT_NULL(disp); 587 588 resp.rc = EOK; 589 display_wnd_params_init(¶ms); 590 params.rect.p0.x = 0; 591 params.rect.p0.y = 0; 592 params.rect.p0.x = 100; 593 params.rect.p0.y = 100; 594 595 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 596 (void *) &resp, &wnd); 597 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 598 PCUT_ASSERT_NOT_NULL(wnd); 599 600 resp.rc = EIO; 601 resp.window_get_pos_called = false; 602 603 dpos.x = 0; 604 dpos.y = 0; 605 606 rc = display_window_get_pos(wnd, &dpos); 607 PCUT_ASSERT_TRUE(resp.window_get_pos_called); 608 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 609 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.get_pos_wnd_id); 610 PCUT_ASSERT_INT_EQUALS(0, dpos.x); 611 PCUT_ASSERT_INT_EQUALS(0, dpos.y); 612 613 display_window_destroy(wnd); 614 display_close(disp); 615 rc = loc_service_unregister(sid); 616 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 617 } 618 619 /** display_window_get_pos() with server returning success response works. */ 620 PCUT_TEST(window_get_pos_success) 621 { 622 errno_t rc; 623 service_id_t sid; 624 display_t *disp = NULL; 625 display_wnd_params_t params; 626 display_window_t *wnd; 627 gfx_coord2_t dpos; 628 test_response_t resp; 629 630 async_set_fallback_port_handler(test_display_conn, &resp); 631 632 // FIXME This causes this test to be non-reentrant! 633 rc = loc_server_register(test_display_server); 634 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 635 636 rc = loc_service_register(test_display_svc, &sid); 637 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 638 639 rc = display_open(test_display_svc, &disp); 640 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 641 PCUT_ASSERT_NOT_NULL(disp); 642 643 resp.rc = EOK; 644 display_wnd_params_init(¶ms); 645 params.rect.p0.x = 0; 646 params.rect.p0.y = 0; 647 params.rect.p0.x = 100; 648 params.rect.p0.y = 100; 649 650 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 651 (void *) &resp, &wnd); 652 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 653 PCUT_ASSERT_NOT_NULL(wnd); 654 655 resp.rc = EOK; 656 resp.window_get_pos_called = false; 657 resp.get_pos_rpos.x = 11; 658 resp.get_pos_rpos.y = 12; 659 660 dpos.x = 0; 661 dpos.y = 0; 662 663 rc = display_window_get_pos(wnd, &dpos); 664 PCUT_ASSERT_TRUE(resp.window_get_pos_called); 665 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 666 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.get_pos_wnd_id); 667 PCUT_ASSERT_INT_EQUALS(resp.get_pos_rpos.x, dpos.x); 668 PCUT_ASSERT_INT_EQUALS(resp.get_pos_rpos.y, dpos.y); 669 670 display_window_destroy(wnd); 671 display_close(disp); 672 rc = loc_service_unregister(sid); 673 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 674 } 675 558 676 /** display_window_resize_req() with server returning error response works. */ 559 677 PCUT_TEST(window_resize_req_failure) … … 937 1055 resp.rc = ENOMEM; 938 1056 rc = display_window_get_gc(wnd, &gc); 939 /* async_connect_me_to() does not return specific error */ 940 PCUT_ASSERT_ERRNO_VAL(EIO, rc); 1057 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 941 1058 PCUT_ASSERT_NULL(gc); 942 1059 … … 1589 1706 } 1590 1707 1708 static errno_t test_window_get_pos(void *arg, sysarg_t wnd_id, gfx_coord2_t *dpos) 1709 { 1710 test_response_t *resp = (test_response_t *) arg; 1711 1712 resp->window_get_pos_called = true; 1713 resp->get_pos_wnd_id = wnd_id; 1714 1715 if (resp->rc == EOK) 1716 *dpos = resp->get_pos_rpos; 1717 1718 return resp->rc; 1719 } 1720 1591 1721 static errno_t test_window_resize_req(void *arg, sysarg_t wnd_id, 1592 1722 display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
Note:
See TracChangeset
for help on using the changeset viewer.