Changeset b3eeae5 in mainline for uspace/lib/dispcfg/test/dispcfg.c
- Timestamp:
- 2023-01-15T09:24:50Z (16 months ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 46a47c0
- Parents:
- 46b02cb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/dispcfg/test/dispcfg.c
r46b02cb rb3eeae5 50 50 static errno_t test_seat_create(void *, const char *, sysarg_t *); 51 51 static errno_t test_seat_delete(void *, sysarg_t); 52 static errno_t test_dev_assign(void *, sysarg_t, sysarg_t); 53 static errno_t test_dev_unassign(void *, sysarg_t); 52 54 static errno_t test_get_event(void *, dispcfg_ev_t *); 53 55 … … 60 62 .seat_create = test_seat_create, 61 63 .seat_delete = test_seat_delete, 64 .dev_assign = test_dev_assign, 65 .dev_unassign = test_dev_unassign, 62 66 .get_event = test_get_event 63 67 }; … … 91 95 bool seat_delete_called; 92 96 sysarg_t seat_delete_seat_id; 97 98 bool dev_assign_called; 99 sysarg_t dev_assign_svc_id; 100 sysarg_t dev_assign_seat_id; 101 102 bool dev_unassign_called; 103 sysarg_t dev_unassign_svc_id; 93 104 94 105 bool get_event_called; … … 443 454 } 444 455 456 /** dispcfg_dev_assign() with server returning error response works */ 457 PCUT_TEST(dev_assign_failure) 458 { 459 errno_t rc; 460 service_id_t sid; 461 dispcfg_t *dispcfg = NULL; 462 sysarg_t svc_id; 463 sysarg_t seat_id; 464 test_response_t resp; 465 466 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 467 468 // FIXME This causes this test to be non-reentrant! 469 rc = loc_server_register(test_dispcfg_server); 470 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 471 472 rc = loc_service_register(test_dispcfg_svc, &sid); 473 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 474 475 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 476 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 477 PCUT_ASSERT_NOT_NULL(dispcfg); 478 479 svc_id = 12; 480 seat_id = 13; 481 resp.rc = ENOMEM; 482 resp.dev_assign_called = false; 483 484 rc = dispcfg_dev_assign(dispcfg, svc_id, seat_id); 485 PCUT_ASSERT_TRUE(resp.dev_assign_called); 486 PCUT_ASSERT_INT_EQUALS(svc_id, resp.dev_assign_svc_id); 487 PCUT_ASSERT_INT_EQUALS(seat_id, resp.dev_assign_seat_id); 488 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 489 490 dispcfg_close(dispcfg); 491 rc = loc_service_unregister(sid); 492 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 493 } 494 495 /** dispcfg_dev_assign() with server returning success response works */ 496 PCUT_TEST(dev_assign_success) 497 { 498 errno_t rc; 499 service_id_t sid; 500 dispcfg_t *dispcfg = NULL; 501 sysarg_t svc_id; 502 sysarg_t seat_id; 503 test_response_t resp; 504 505 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 506 507 // FIXME This causes this test to be non-reentrant! 508 rc = loc_server_register(test_dispcfg_server); 509 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 510 511 rc = loc_service_register(test_dispcfg_svc, &sid); 512 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 513 514 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 515 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 516 PCUT_ASSERT_NOT_NULL(dispcfg); 517 518 svc_id = 12; 519 seat_id = 13; 520 resp.rc = EOK; 521 resp.dev_assign_called = false; 522 523 rc = dispcfg_dev_assign(dispcfg, svc_id, seat_id); 524 PCUT_ASSERT_TRUE(resp.dev_assign_called); 525 PCUT_ASSERT_INT_EQUALS(svc_id, resp.dev_assign_svc_id); 526 PCUT_ASSERT_INT_EQUALS(seat_id, resp.dev_assign_seat_id); 527 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 528 529 dispcfg_close(dispcfg); 530 rc = loc_service_unregister(sid); 531 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 532 } 533 534 /** dispcfg_dev_unassign() with server returning error response works */ 535 PCUT_TEST(dev_unassign_failure) 536 { 537 errno_t rc; 538 service_id_t sid; 539 dispcfg_t *dispcfg = NULL; 540 sysarg_t svc_id; 541 test_response_t resp; 542 543 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 544 545 // FIXME This causes this test to be non-reentrant! 546 rc = loc_server_register(test_dispcfg_server); 547 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 548 549 rc = loc_service_register(test_dispcfg_svc, &sid); 550 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 551 552 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 553 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 554 PCUT_ASSERT_NOT_NULL(dispcfg); 555 556 svc_id = 12; 557 resp.rc = ENOMEM; 558 resp.dev_unassign_called = false; 559 560 rc = dispcfg_dev_unassign(dispcfg, svc_id); 561 PCUT_ASSERT_TRUE(resp.dev_unassign_called); 562 PCUT_ASSERT_INT_EQUALS(svc_id, resp.dev_unassign_svc_id); 563 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 564 565 dispcfg_close(dispcfg); 566 rc = loc_service_unregister(sid); 567 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 568 } 569 570 /** dispcfg_dev_unassign() with server returning success response works */ 571 PCUT_TEST(dev_unassign_success) 572 { 573 errno_t rc; 574 service_id_t sid; 575 dispcfg_t *dispcfg = NULL; 576 sysarg_t svc_id; 577 test_response_t resp; 578 579 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 580 581 // FIXME This causes this test to be non-reentrant! 582 rc = loc_server_register(test_dispcfg_server); 583 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 584 585 rc = loc_service_register(test_dispcfg_svc, &sid); 586 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 587 588 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 589 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 590 PCUT_ASSERT_NOT_NULL(dispcfg); 591 592 svc_id = 12; 593 resp.rc = EOK; 594 resp.dev_unassign_called = false; 595 596 rc = dispcfg_dev_unassign(dispcfg, svc_id); 597 PCUT_ASSERT_TRUE(resp.dev_unassign_called); 598 PCUT_ASSERT_INT_EQUALS(svc_id, resp.dev_unassign_svc_id); 599 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 600 601 dispcfg_close(dispcfg); 602 rc = loc_service_unregister(sid); 603 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 604 } 605 445 606 /** Window added event can be delivered from server to client callback function */ 446 607 PCUT_TEST(seat_added_deliver) … … 628 789 } 629 790 791 static errno_t test_dev_assign(void *arg, sysarg_t svc_id, sysarg_t seat_id) 792 { 793 test_response_t *resp = (test_response_t *) arg; 794 795 resp->dev_assign_called = true; 796 resp->dev_assign_svc_id = svc_id; 797 resp->dev_assign_seat_id = seat_id; 798 return resp->rc; 799 } 800 801 static errno_t test_dev_unassign(void *arg, sysarg_t svc_id) 802 { 803 test_response_t *resp = (test_response_t *) arg; 804 805 resp->dev_unassign_called = true; 806 resp->dev_unassign_svc_id = svc_id; 807 return resp->rc; 808 } 809 630 810 static errno_t test_get_event(void *arg, dispcfg_ev_t *event) 631 811 {
Note:
See TracChangeset
for help on using the changeset viewer.