Changes in uspace/lib/dispcfg/test/dispcfg.c [b3eeae5:4c6fd56] in mainline
- File:
-
- 1 edited
-
uspace/lib/dispcfg/test/dispcfg.c (modified) (31 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/dispcfg/test/dispcfg.c
rb3eeae5 r4c6fd56 35 35 #include <pcut/pcut.h> 36 36 #include <str.h> 37 #include <testdc.h> 37 38 #include "../private/dispcfg.h" 38 39 … … 44 45 static const char *test_dispcfg_svc = "test/dispcfg"; 45 46 46 static void test_dispcfg_conn(ipc_call_t *, void *);47 48 static errno_t test_get_seat_list(void *, dispcfg_seat_list_t **);49 static errno_t test_get_seat_info(void *, sysarg_t, dispcfg_seat_info_t **);50 static errno_t test_seat_create(void *, const char *, sysarg_t *);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);54 static errno_t test_get_event(void *, dispcfg_ev_t *);55 56 static void test_seat_added(void *, sysarg_t);57 static void test_seat_removed(void *, sysarg_t);58 59 static dispcfg_ops_t test_dispcfg_srv_ops = {60 .get_seat_list = test_get_seat_list,61 .get_seat_info = test_get_seat_info,62 .seat_create = test_seat_create,63 .seat_delete = test_seat_delete,64 .dev_assign = test_dev_assign,65 .dev_unassign = test_dev_unassign,66 .get_event = test_get_event67 };68 69 static dispcfg_cb_t test_dispcfg_cb = {70 .seat_added = test_seat_added,71 .seat_removed = test_seat_removed72 };73 74 /** Describes to the server how to respond to our request and pass tracking75 * data back to the client.76 */77 typedef struct {78 errno_t rc;79 sysarg_t seat_id;80 dispcfg_ev_t event;81 dispcfg_ev_t revent;82 int event_cnt;83 84 bool get_seat_list_called;85 dispcfg_seat_list_t *get_seat_list_rlist;86 87 bool get_seat_info_called;88 sysarg_t get_seat_info_seat_id;89 dispcfg_seat_info_t *get_seat_info_rinfo;90 91 bool seat_create_called;92 char *seat_create_name;93 sysarg_t seat_create_seat_id;94 95 bool seat_delete_called;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;104 105 bool get_event_called;106 107 bool seat_added_called;108 sysarg_t seat_added_seat_id;109 110 bool seat_removed_called;111 sysarg_t seat_removed_seat_id;112 113 bool seat_changed_called;114 sysarg_t seat_changed_seat_id;115 116 fibril_condvar_t event_cv;117 fibril_mutex_t event_lock;118 dispcfg_srv_t *srv;119 } test_response_t;120 121 47 /** dispcfg_open(), dispcfg_close() work for valid seat management service */ 122 48 PCUT_TEST(open_close) … … 126 52 dispcfg_t *dispcfg = NULL; 127 53 test_response_t resp; 128 129 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 130 131 // FIXME This causes this test to be non-reentrant! 132 rc = loc_server_register(test_dispcfg_server); 133 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 134 135 rc = loc_service_register(test_dispcfg_svc, &sid); 136 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 137 138 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 139 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 140 PCUT_ASSERT_NOT_NULL(dispcfg); 141 142 dispcfg_close(dispcfg); 143 rc = loc_service_unregister(sid); 144 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 54 loc_srv_t *srv; 55 56 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 57 58 // FIXME This causes this test to be non-reentrant! 59 rc = loc_server_register(test_dispcfg_server, &srv); 60 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 61 62 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 63 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 64 65 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 66 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 67 PCUT_ASSERT_NOT_NULL(dispcfg); 68 69 dispcfg_close(dispcfg); 70 rc = loc_service_unregister(srv, sid); 71 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 72 loc_server_unregister(srv); 145 73 } 146 74 … … 153 81 dispcfg_seat_list_t *list; 154 82 test_response_t resp; 155 156 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 157 158 // FIXME This causes this test to be non-reentrant! 159 rc = loc_server_register(test_dispcfg_server); 160 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 161 162 rc = loc_service_register(test_dispcfg_svc, &sid); 83 loc_srv_t *srv; 84 85 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 86 87 // FIXME This causes this test to be non-reentrant! 88 rc = loc_server_register(test_dispcfg_server, &srv); 89 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 90 91 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 163 92 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 164 93 … … 175 104 176 105 dispcfg_close(dispcfg); 177 rc = loc_service_unregister(sid); 178 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 106 rc = loc_service_unregister(srv, sid); 107 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 108 loc_server_unregister(srv); 179 109 } 180 110 … … 187 117 dispcfg_seat_list_t *list; 188 118 test_response_t resp; 189 190 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 191 192 // FIXME This causes this test to be non-reentrant! 193 rc = loc_server_register(test_dispcfg_server); 194 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 195 196 rc = loc_service_register(test_dispcfg_svc, &sid); 119 loc_srv_t *srv; 120 121 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 122 123 // FIXME This causes this test to be non-reentrant! 124 rc = loc_server_register(test_dispcfg_server, &srv); 125 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 126 127 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 197 128 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 198 129 … … 221 152 dispcfg_free_seat_list(list); 222 153 dispcfg_close(dispcfg); 223 rc = loc_service_unregister(sid); 224 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 154 rc = loc_service_unregister(srv, sid); 155 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 156 loc_server_unregister(srv); 225 157 } 226 158 … … 234 166 dispcfg_seat_info_t *info; 235 167 test_response_t resp; 236 237 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 238 239 // FIXME This causes this test to be non-reentrant! 240 rc = loc_server_register(test_dispcfg_server); 241 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 242 243 rc = loc_service_register(test_dispcfg_svc, &sid); 168 loc_srv_t *srv; 169 170 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 171 172 // FIXME This causes this test to be non-reentrant! 173 rc = loc_server_register(test_dispcfg_server, &srv); 174 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 175 176 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 244 177 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 245 178 … … 258 191 259 192 dispcfg_close(dispcfg); 260 rc = loc_service_unregister(sid); 261 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 193 rc = loc_service_unregister(srv, sid); 194 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 195 loc_server_unregister(srv); 262 196 } 263 197 … … 271 205 dispcfg_seat_info_t *info; 272 206 test_response_t resp; 273 274 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 275 276 // FIXME This causes this test to be non-reentrant! 277 rc = loc_server_register(test_dispcfg_server); 278 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 279 280 rc = loc_service_register(test_dispcfg_svc, &sid); 207 loc_srv_t *srv; 208 209 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 210 211 // FIXME This causes this test to be non-reentrant! 212 rc = loc_server_register(test_dispcfg_server, &srv); 213 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 214 215 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 281 216 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 282 217 … … 302 237 dispcfg_free_seat_info(info); 303 238 dispcfg_close(dispcfg); 304 rc = loc_service_unregister(sid); 305 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 239 rc = loc_service_unregister(srv, sid); 240 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 241 loc_server_unregister(srv); 306 242 } 307 243 … … 314 250 sysarg_t seat_id; 315 251 test_response_t resp; 316 317 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 318 319 // FIXME This causes this test to be non-reentrant! 320 rc = loc_server_register(test_dispcfg_server); 321 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 322 323 rc = loc_service_register(test_dispcfg_svc, &sid); 252 loc_srv_t *srv; 253 254 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 255 256 // FIXME This causes this test to be non-reentrant! 257 rc = loc_server_register(test_dispcfg_server, &srv); 258 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 259 260 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 324 261 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 325 262 … … 340 277 341 278 dispcfg_close(dispcfg); 342 rc = loc_service_unregister(sid); 343 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 279 rc = loc_service_unregister(srv, sid); 280 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 281 loc_server_unregister(srv); 344 282 } 345 283 … … 352 290 sysarg_t seat_id; 353 291 test_response_t resp; 354 355 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 356 357 // FIXME This causes this test to be non-reentrant! 358 rc = loc_server_register(test_dispcfg_server); 359 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 360 361 rc = loc_service_register(test_dispcfg_svc, &sid); 292 loc_srv_t *srv; 293 294 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 295 296 // FIXME This causes this test to be non-reentrant! 297 rc = loc_server_register(test_dispcfg_server, &srv); 298 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 299 300 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 362 301 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 363 302 … … 378 317 379 318 dispcfg_close(dispcfg); 380 rc = loc_service_unregister(sid); 381 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 319 rc = loc_service_unregister(srv, sid); 320 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 321 loc_server_unregister(srv); 382 322 } 383 323 … … 390 330 sysarg_t seat_id; 391 331 test_response_t resp; 392 393 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 394 395 // FIXME This causes this test to be non-reentrant! 396 rc = loc_server_register(test_dispcfg_server); 397 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 398 399 rc = loc_service_register(test_dispcfg_svc, &sid); 332 loc_srv_t *srv; 333 334 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 335 336 // FIXME This causes this test to be non-reentrant! 337 rc = loc_server_register(test_dispcfg_server, &srv); 338 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 339 340 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 400 341 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 401 342 … … 414 355 415 356 dispcfg_close(dispcfg); 416 rc = loc_service_unregister(sid); 417 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 357 rc = loc_service_unregister(srv, sid); 358 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 359 loc_server_unregister(srv); 418 360 } 419 361 … … 426 368 sysarg_t seat_id; 427 369 test_response_t resp; 428 429 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 430 431 // FIXME This causes this test to be non-reentrant! 432 rc = loc_server_register(test_dispcfg_server); 433 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 434 435 rc = loc_service_register(test_dispcfg_svc, &sid); 370 loc_srv_t *srv; 371 372 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 373 374 // FIXME This causes this test to be non-reentrant! 375 rc = loc_server_register(test_dispcfg_server, &srv); 376 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 377 378 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 436 379 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 437 380 … … 450 393 451 394 dispcfg_close(dispcfg); 452 rc = loc_service_unregister(sid); 453 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 395 rc = loc_service_unregister(srv, sid); 396 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 397 loc_server_unregister(srv); 454 398 } 455 399 … … 463 407 sysarg_t seat_id; 464 408 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); 409 loc_srv_t *srv; 410 411 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 412 413 // FIXME This causes this test to be non-reentrant! 414 rc = loc_server_register(test_dispcfg_server, &srv); 415 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 416 417 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 473 418 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 474 419 … … 489 434 490 435 dispcfg_close(dispcfg); 491 rc = loc_service_unregister(sid); 492 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 436 rc = loc_service_unregister(srv, sid); 437 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 438 loc_server_unregister(srv); 493 439 } 494 440 … … 502 448 sysarg_t seat_id; 503 449 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); 450 loc_srv_t *srv; 451 452 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 453 454 // FIXME This causes this test to be non-reentrant! 455 rc = loc_server_register(test_dispcfg_server, &srv); 456 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 457 458 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 512 459 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 513 460 … … 528 475 529 476 dispcfg_close(dispcfg); 530 rc = loc_service_unregister(sid); 531 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 477 rc = loc_service_unregister(srv, sid); 478 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 479 loc_server_unregister(srv); 532 480 } 533 481 … … 540 488 sysarg_t svc_id; 541 489 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); 490 loc_srv_t *srv; 491 492 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 493 494 // FIXME This causes this test to be non-reentrant! 495 rc = loc_server_register(test_dispcfg_server, &srv); 496 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 497 498 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 550 499 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 551 500 … … 564 513 565 514 dispcfg_close(dispcfg); 566 rc = loc_service_unregister(sid); 567 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 515 rc = loc_service_unregister(srv, sid); 516 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 517 loc_server_unregister(srv); 568 518 } 569 519 … … 576 526 sysarg_t svc_id; 577 527 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); 528 loc_srv_t *srv; 529 530 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 531 532 // FIXME This causes this test to be non-reentrant! 533 rc = loc_server_register(test_dispcfg_server, &srv); 534 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 535 536 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 586 537 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 587 538 … … 600 551 601 552 dispcfg_close(dispcfg); 602 rc = loc_service_unregister(sid); 603 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 553 rc = loc_service_unregister(srv, sid); 554 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 555 loc_server_unregister(srv); 556 } 557 558 /** dispcfg_get_asgn_dev_list() with server returning error response works */ 559 PCUT_TEST(get_asgn_dev_list_failure) 560 { 561 errno_t rc; 562 service_id_t sid; 563 dispcfg_t *dispcfg = NULL; 564 dispcfg_dev_list_t *list; 565 sysarg_t seat_id; 566 test_response_t resp; 567 loc_srv_t *srv; 568 569 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 570 571 // FIXME This causes this test to be non-reentrant! 572 rc = loc_server_register(test_dispcfg_server, &srv); 573 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 574 575 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 576 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 577 578 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 579 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 580 PCUT_ASSERT_NOT_NULL(dispcfg); 581 582 resp.rc = ENOMEM; 583 resp.get_asgn_dev_list_called = false; 584 seat_id = 42; 585 586 rc = dispcfg_get_asgn_dev_list(dispcfg, seat_id, &list); 587 PCUT_ASSERT_TRUE(resp.get_asgn_dev_list_called); 588 PCUT_ASSERT_INT_EQUALS(seat_id, resp.get_asgn_dev_list_seat_id); 589 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 590 591 dispcfg_close(dispcfg); 592 rc = loc_service_unregister(srv, sid); 593 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 594 loc_server_unregister(srv); 595 } 596 597 /** dispcfg_get_asgn_dev_list() with server returning success response works */ 598 PCUT_TEST(get_asgn_dev_list_success) 599 { 600 errno_t rc; 601 service_id_t sid; 602 dispcfg_t *dispcfg = NULL; 603 dispcfg_dev_list_t *list; 604 sysarg_t seat_id; 605 test_response_t resp; 606 loc_srv_t *srv; 607 608 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 609 610 // FIXME This causes this test to be non-reentrant! 611 rc = loc_server_register(test_dispcfg_server, &srv); 612 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 613 614 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 615 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 616 617 rc = dispcfg_open(test_dispcfg_svc, NULL, NULL, &dispcfg); 618 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 619 PCUT_ASSERT_NOT_NULL(dispcfg); 620 621 resp.rc = EOK; 622 resp.get_asgn_dev_list_called = false; 623 resp.get_asgn_dev_list_rlist = calloc(1, sizeof(dispcfg_dev_list_t)); 624 PCUT_ASSERT_NOT_NULL(resp.get_asgn_dev_list_rlist); 625 resp.get_asgn_dev_list_rlist->ndevs = 2; 626 resp.get_asgn_dev_list_rlist->devs = calloc(2, sizeof(sysarg_t)); 627 PCUT_ASSERT_NOT_NULL(resp.get_asgn_dev_list_rlist->devs); 628 resp.get_asgn_dev_list_rlist->devs[0] = 11; 629 resp.get_asgn_dev_list_rlist->devs[1] = 12; 630 seat_id = 42; 631 632 rc = dispcfg_get_asgn_dev_list(dispcfg, seat_id, &list); 633 PCUT_ASSERT_TRUE(resp.get_asgn_dev_list_called); 634 PCUT_ASSERT_INT_EQUALS(seat_id, resp.get_asgn_dev_list_seat_id); 635 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 636 637 PCUT_ASSERT_INT_EQUALS(2, list->ndevs); 638 PCUT_ASSERT_INT_EQUALS(11, list->devs[0]); 639 PCUT_ASSERT_INT_EQUALS(12, list->devs[1]); 640 641 dispcfg_free_dev_list(list); 642 dispcfg_close(dispcfg); 643 rc = loc_service_unregister(srv, sid); 644 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 645 loc_server_unregister(srv); 604 646 } 605 647 … … 611 653 dispcfg_t *dispcfg = NULL; 612 654 test_response_t resp; 613 614 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 615 616 // FIXME This causes this test to be non-reentrant! 617 rc = loc_server_register(test_dispcfg_server); 618 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 619 620 rc = loc_service_register(test_dispcfg_svc, &sid); 655 loc_srv_t *srv; 656 657 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 658 659 // FIXME This causes this test to be non-reentrant! 660 rc = loc_server_register(test_dispcfg_server, &srv); 661 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 662 663 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 621 664 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 622 665 … … 647 690 dispcfg_close(dispcfg); 648 691 649 rc = loc_service_unregister(sid); 650 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 692 rc = loc_service_unregister(srv, sid); 693 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 694 loc_server_unregister(srv); 651 695 } 652 696 … … 658 702 dispcfg_t *dispcfg = NULL; 659 703 test_response_t resp; 660 661 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 662 663 // FIXME This causes this test to be non-reentrant! 664 rc = loc_server_register(test_dispcfg_server); 665 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 666 667 rc = loc_service_register(test_dispcfg_svc, &sid); 704 loc_srv_t *srv; 705 706 async_set_fallback_port_handler(test_dispcfg_conn, &resp); 707 708 // FIXME This causes this test to be non-reentrant! 709 rc = loc_server_register(test_dispcfg_server, &srv); 710 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 711 712 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 668 713 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 669 714 … … 694 739 dispcfg_close(dispcfg); 695 740 696 rc = loc_service_unregister(sid); 697 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 698 } 699 700 /** Test seat management service connection. */ 701 static void test_dispcfg_conn(ipc_call_t *icall, void *arg) 702 { 703 test_response_t *resp = (test_response_t *) arg; 704 dispcfg_srv_t srv; 705 706 /* Set up protocol structure */ 707 dispcfg_srv_initialize(&srv); 708 srv.ops = &test_dispcfg_srv_ops; 709 srv.arg = arg; 710 resp->srv = &srv; 711 712 /* Handle connection */ 713 dispcfg_conn(icall, &srv); 714 715 resp->srv = NULL; 716 } 717 718 static void test_seat_added(void *arg, sysarg_t seat_id) 719 { 720 test_response_t *resp = (test_response_t *) arg; 721 722 resp->revent.etype = dcev_seat_added; 723 724 fibril_mutex_lock(&resp->event_lock); 725 resp->seat_added_called = true; 726 resp->seat_added_seat_id = seat_id; 727 fibril_condvar_broadcast(&resp->event_cv); 728 fibril_mutex_unlock(&resp->event_lock); 729 } 730 731 static void test_seat_removed(void *arg, sysarg_t seat_id) 732 { 733 test_response_t *resp = (test_response_t *) arg; 734 735 resp->revent.etype = dcev_seat_removed; 736 737 fibril_mutex_lock(&resp->event_lock); 738 resp->seat_removed_called = true; 739 resp->seat_removed_seat_id = seat_id; 740 fibril_condvar_broadcast(&resp->event_cv); 741 fibril_mutex_unlock(&resp->event_lock); 742 } 743 744 static errno_t test_get_seat_list(void *arg, dispcfg_seat_list_t **rlist) 745 { 746 test_response_t *resp = (test_response_t *) arg; 747 748 resp->get_seat_list_called = true; 749 750 if (resp->rc != EOK) 751 return resp->rc; 752 753 *rlist = resp->get_seat_list_rlist; 754 return EOK; 755 } 756 757 static errno_t test_get_seat_info(void *arg, sysarg_t seat_id, 758 dispcfg_seat_info_t **rinfo) 759 { 760 test_response_t *resp = (test_response_t *) arg; 761 762 resp->get_seat_info_called = true; 763 resp->get_seat_info_seat_id = seat_id; 764 765 if (resp->rc != EOK) 766 return resp->rc; 767 768 *rinfo = resp->get_seat_info_rinfo; 769 return EOK; 770 } 771 772 static errno_t test_seat_create(void *arg, const char *name, sysarg_t *rseat_id) 773 { 774 test_response_t *resp = (test_response_t *) arg; 775 776 resp->seat_create_called = true; 777 resp->seat_create_name = str_dup(name); 778 *rseat_id = resp->seat_create_seat_id; 779 return resp->rc; 780 } 781 782 static errno_t test_seat_delete(void *arg, sysarg_t seat_id) 783 { 784 test_response_t *resp = (test_response_t *) arg; 785 786 resp->seat_delete_called = true; 787 resp->seat_delete_seat_id = seat_id; 788 return resp->rc; 789 } 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 810 static errno_t test_get_event(void *arg, dispcfg_ev_t *event) 811 { 812 test_response_t *resp = (test_response_t *) arg; 813 814 resp->get_event_called = true; 815 if (resp->event_cnt > 0) { 816 --resp->event_cnt; 817 *event = resp->event; 818 return EOK; 819 } 820 821 return ENOENT; 741 rc = loc_service_unregister(srv, sid); 742 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 743 loc_server_unregister(srv); 822 744 } 823 745
Note:
See TracChangeset
for help on using the changeset viewer.
