Changeset 2ab8ab3 in mainline for uspace/lib/ipcgfx/test
- Timestamp:
- 2021-02-16T18:12:05Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 68a552f
- Parents:
- ef734b7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ipcgfx/test/ipcgfx.c
ref734b7 r2ab8ab3 1 1 /* 2 * Copyright (c) 20 19Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 52 52 static errno_t test_gc_set_color(void *, gfx_color_t *); 53 53 static errno_t test_gc_fill_rect(void *, gfx_rect_t *); 54 static errno_t test_gc_update(void *); 54 55 static errno_t test_gc_bitmap_create(void *, gfx_bitmap_params_t *, 55 56 gfx_bitmap_alloc_t *, void **); … … 61 62 .set_color = test_gc_set_color, 62 63 .fill_rect = test_gc_fill_rect, 64 .update = test_gc_update, 63 65 .bitmap_create = test_gc_bitmap_create, 64 66 .bitmap_destroy = test_gc_bitmap_destroy, … … 80 82 bool fill_rect_called; 81 83 gfx_rect_t fill_rect_rect; 84 85 bool update_called; 82 86 83 87 bool bitmap_create_called; … … 292 296 PCUT_ASSERT_EQUALS(rect.p1.x, resp.fill_rect_rect.p1.x); 293 297 PCUT_ASSERT_EQUALS(rect.p1.y, resp.fill_rect_rect.p1.y); 298 299 ipc_gc_delete(ipcgc); 300 async_hangup(sess); 301 302 rc = loc_service_unregister(sid); 303 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 304 } 305 306 /** gfx_update with server returning failure */ 307 PCUT_TEST(update_failure) 308 { 309 errno_t rc; 310 service_id_t sid; 311 test_response_t resp; 312 gfx_context_t *gc; 313 async_sess_t *sess; 314 ipc_gc_t *ipcgc; 315 316 async_set_fallback_port_handler(test_ipcgc_conn, &resp); 317 318 // FIXME This causes this test to be non-reentrant! 319 rc = loc_server_register(test_ipcgfx_server); 320 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 321 322 rc = loc_service_register(test_ipcgfx_svc, &sid); 323 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 324 325 sess = loc_service_connect(sid, INTERFACE_GC, 0); 326 PCUT_ASSERT_NOT_NULL(sess); 327 328 rc = ipc_gc_create(sess, &ipcgc); 329 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 330 331 gc = ipc_gc_get_ctx(ipcgc); 332 PCUT_ASSERT_NOT_NULL(gc); 333 334 resp.rc = ENOMEM; 335 resp.update_called = false; 336 rc = gfx_update(gc); 337 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 338 PCUT_ASSERT_TRUE(resp.update_called); 339 340 ipc_gc_delete(ipcgc); 341 async_hangup(sess); 342 343 rc = loc_service_unregister(sid); 344 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 345 } 346 347 /** gfx_update with server returning success */ 348 PCUT_TEST(update_success) 349 { 350 errno_t rc; 351 service_id_t sid; 352 test_response_t resp; 353 gfx_context_t *gc; 354 async_sess_t *sess; 355 ipc_gc_t *ipcgc; 356 357 async_set_fallback_port_handler(test_ipcgc_conn, &resp); 358 359 // FIXME This causes this test to be non-reentrant! 360 rc = loc_server_register(test_ipcgfx_server); 361 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 362 363 rc = loc_service_register(test_ipcgfx_svc, &sid); 364 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 365 366 sess = loc_service_connect(sid, INTERFACE_GC, 0); 367 PCUT_ASSERT_NOT_NULL(sess); 368 369 rc = ipc_gc_create(sess, &ipcgc); 370 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 371 372 gc = ipc_gc_get_ctx(ipcgc); 373 PCUT_ASSERT_NOT_NULL(gc); 374 375 resp.rc = EOK; 376 resp.update_called = false; 377 rc = gfx_update(gc); 378 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 379 PCUT_ASSERT_TRUE(resp.update_called); 294 380 295 381 ipc_gc_delete(ipcgc); … … 847 933 } 848 934 935 /** Update test GC. 936 * 937 * @param arg Test GC 938 * 939 * @return EOK on success or an error code 940 */ 941 static errno_t test_gc_update(void *arg) 942 { 943 test_response_t *resp = (test_response_t *) arg; 944 945 resp->update_called = true; 946 return resp->rc; 947 } 948 849 949 /** Create bitmap in test GC. 850 950 *
Note:
See TracChangeset
for help on using the changeset viewer.