Changeset 7cc30e9 in mainline for uspace/lib/display/test/display.c
- Timestamp:
- 2022-10-24T17:50:46Z (3 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 913add60
- Parents:
- 7a05d924
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/test/display.c
r7a05d924 r7cc30e9 38 38 #include <loc.h> 39 39 #include <pcut/pcut.h> 40 #include <str.h> 40 41 #include "../private/display.h" 41 42 … … 68 69 static errno_t test_window_unmaximize(void *, sysarg_t); 69 70 static errno_t test_window_set_cursor(void *, sysarg_t, display_stock_cursor_t); 71 static errno_t test_window_set_caption(void *, sysarg_t, const char *); 70 72 static errno_t test_get_event(void *, sysarg_t *, display_wnd_ev_t *); 71 73 static errno_t test_get_info(void *, display_info_t *); … … 85 87 .window_unmaximize = test_window_unmaximize, 86 88 .window_set_cursor = test_window_set_cursor, 89 .window_set_caption = test_window_set_caption, 87 90 .get_event = test_get_event, 88 91 .get_info = test_get_info … … 148 151 sysarg_t set_cursor_wnd_id; 149 152 display_stock_cursor_t set_cursor_cursor; 153 154 bool window_set_caption_called; 155 sysarg_t set_caption_wnd_id; 156 char *set_caption_caption; 150 157 151 158 bool get_event_called; … … 1240 1247 PCUT_ASSERT_INT_EQUALS(dcurs_size_ud, resp.set_cursor_cursor); 1241 1248 1249 display_window_destroy(wnd); 1250 display_close(disp); 1251 rc = loc_service_unregister(sid); 1252 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1253 } 1254 1255 /** display_window_set_caption() with server returning error response works. */ 1256 PCUT_TEST(window_set_caption_failure) 1257 { 1258 errno_t rc; 1259 service_id_t sid; 1260 display_t *disp = NULL; 1261 display_wnd_params_t params; 1262 display_window_t *wnd; 1263 const char *caption; 1264 test_response_t resp; 1265 1266 async_set_fallback_port_handler(test_display_conn, &resp); 1267 1268 // FIXME This causes this test to be non-reentrant! 1269 rc = loc_server_register(test_display_server); 1270 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1271 1272 rc = loc_service_register(test_display_svc, &sid); 1273 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1274 1275 rc = display_open(test_display_svc, &disp); 1276 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1277 PCUT_ASSERT_NOT_NULL(disp); 1278 1279 resp.rc = EOK; 1280 display_wnd_params_init(¶ms); 1281 params.rect.p0.x = 0; 1282 params.rect.p0.y = 0; 1283 params.rect.p0.x = 100; 1284 params.rect.p0.y = 100; 1285 1286 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 1287 (void *) &resp, &wnd); 1288 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1289 PCUT_ASSERT_NOT_NULL(wnd); 1290 1291 caption = "Hello"; 1292 1293 resp.rc = EIO; 1294 resp.window_set_caption_called = false; 1295 1296 rc = display_window_set_caption(wnd, caption); 1297 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.set_caption_wnd_id); 1298 PCUT_ASSERT_TRUE(resp.window_set_caption_called); 1299 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 1300 PCUT_ASSERT_INT_EQUALS(0, str_cmp(caption, resp.set_caption_caption)); 1301 1302 //free(resp.set_caption_caption); 1303 display_window_destroy(wnd); 1304 display_close(disp); 1305 rc = loc_service_unregister(sid); 1306 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1307 } 1308 1309 /** display_window_set_caption() with server returning success response works. */ 1310 PCUT_TEST(window_set_caption_success) 1311 { 1312 errno_t rc; 1313 service_id_t sid; 1314 display_t *disp = NULL; 1315 display_wnd_params_t params; 1316 display_window_t *wnd; 1317 const char *caption; 1318 test_response_t resp; 1319 1320 async_set_fallback_port_handler(test_display_conn, &resp); 1321 1322 // FIXME This causes this test to be non-reentrant! 1323 rc = loc_server_register(test_display_server); 1324 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1325 1326 rc = loc_service_register(test_display_svc, &sid); 1327 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1328 1329 rc = display_open(test_display_svc, &disp); 1330 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1331 PCUT_ASSERT_NOT_NULL(disp); 1332 1333 resp.rc = EOK; 1334 display_wnd_params_init(¶ms); 1335 params.rect.p0.x = 0; 1336 params.rect.p0.y = 0; 1337 params.rect.p0.x = 100; 1338 params.rect.p0.y = 100; 1339 1340 rc = display_window_create(disp, ¶ms, &test_display_wnd_cb, 1341 (void *) &resp, &wnd); 1342 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1343 PCUT_ASSERT_NOT_NULL(wnd); 1344 1345 caption = "Hello"; 1346 1347 resp.rc = EOK; 1348 resp.window_set_caption_called = false; 1349 1350 rc = display_window_set_caption(wnd, caption); 1351 PCUT_ASSERT_INT_EQUALS(wnd->id, resp.set_caption_wnd_id); 1352 PCUT_ASSERT_TRUE(resp.window_set_caption_called); 1353 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 1354 PCUT_ASSERT_INT_EQUALS(0, str_cmp(caption, resp.set_caption_caption)); 1355 1356 //free(resp.set_caption_caption); 1242 1357 display_window_destroy(wnd); 1243 1358 display_close(disp); … … 2018 2133 } 2019 2134 2135 static errno_t test_window_set_caption(void *arg, sysarg_t wnd_id, 2136 const char *caption) 2137 { 2138 test_response_t *resp = (test_response_t *) arg; 2139 2140 resp->window_set_caption_called = true; 2141 resp->set_caption_wnd_id = wnd_id; 2142 resp->set_caption_caption = str_dup(caption); 2143 2144 return resp->rc; 2145 } 2146 2020 2147 static errno_t test_get_event(void *arg, sysarg_t *wnd_id, 2021 2148 display_wnd_ev_t *event)
Note:
See TracChangeset
for help on using the changeset viewer.