Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/display/test/client.c

    r46a47c0 r195b7b3  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2019 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3434#include "../client.h"
    3535#include "../display.h"
    36 #include "../seat.h"
    3736#include "../window.h"
    3837
     
    7978        ds_display_t *disp;
    8079        ds_client_t *client;
    81         ds_seat_t *seat;
    8280        ds_window_t *w0;
    8381        ds_window_t *w1;
    8482        ds_window_t *wnd;
    8583        display_wnd_params_t params;
    86         bool called_cb = NULL;
    87         errno_t rc;
    88 
    89         rc = ds_display_create(NULL, df_none, &disp);
    90         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    91 
    92         rc = ds_client_create(disp, &test_ds_client_cb, &called_cb, &client);
    93         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    94 
    95         rc = ds_seat_create(disp, "Alice", &seat);
     84        errno_t rc;
     85
     86        rc = ds_display_create(NULL, df_none, &disp);
     87        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     88
     89        rc = ds_client_create(disp, &test_ds_client_cb, NULL, &client);
    9690        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    9791
     
    120114        ds_window_destroy(w0);
    121115        ds_window_destroy(w1);
    122         ds_seat_destroy(seat);
    123116        ds_client_destroy(client);
    124117        ds_display_destroy(disp);
     
    130123        ds_display_t *disp;
    131124        ds_client_t *client;
    132         ds_seat_t *seat;
    133125        ds_window_t *w0;
    134126        ds_window_t *w1;
    135127        ds_window_t *wnd;
    136128        display_wnd_params_t params;
    137         bool called_cb = NULL;
    138         errno_t rc;
    139 
    140         rc = ds_display_create(NULL, df_none, &disp);
    141         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    142 
    143         rc = ds_client_create(disp, &test_ds_client_cb, &called_cb, &client);
    144         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    145 
    146         rc = ds_seat_create(disp, "Alice", &seat);
     129        errno_t rc;
     130
     131        rc = ds_display_create(NULL, df_none, &disp);
     132        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     133
     134        rc = ds_client_create(disp, &test_ds_client_cb, NULL, &client);
    147135        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    148136
     
    168156        ds_window_destroy(w0);
    169157        ds_window_destroy(w1);
    170         ds_seat_destroy(seat);
    171158        ds_client_destroy(client);
    172159        ds_display_destroy(disp);
     
    178165        ds_display_t *disp;
    179166        ds_client_t *client;
    180         ds_seat_t *seat;
    181167        ds_window_t *wnd;
    182168        display_wnd_params_t params;
     
    192178        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    193179
    194         rc = ds_seat_create(disp, "Alice", &seat);
    195         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    196 
    197         display_wnd_params_init(&params);
    198         params.rect.p0.x = params.rect.p0.y = 0;
    199         params.rect.p1.x = params.rect.p1.y = 1;
    200 
    201         rc = ds_window_create(client, &params, &wnd);
    202         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    203 
    204         /* New window gets focused event */
    205         PCUT_ASSERT_TRUE(called_cb);
    206 
    207         rc = ds_client_get_event(client, &rwindow, &revent);
    208         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    209 
    210         called_cb = false;
     180        display_wnd_params_init(&params);
     181        params.rect.p0.x = params.rect.p0.y = 0;
     182        params.rect.p1.x = params.rect.p1.y = 1;
     183
     184        rc = ds_window_create(client, &params, &wnd);
     185        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     186
     187        PCUT_ASSERT_FALSE(called_cb);
    211188
    212189        rc = ds_client_get_event(client, &rwindow, &revent);
     
    226203
    227204        ds_window_destroy(wnd);
    228         ds_seat_destroy(seat);
    229205        ds_client_destroy(client);
    230206        ds_display_destroy(disp);
     
    236212        ds_display_t *disp;
    237213        ds_client_t *client;
    238         ds_seat_t *seat;
    239214        ds_window_t *wnd;
    240215        display_wnd_params_t params;
    241216        ds_window_t *rwindow;
    242         display_wnd_focus_ev_t efocus;
    243217        display_wnd_ev_t revent;
    244218        bool called_cb = NULL;
     
    251225        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    252226
    253         rc = ds_seat_create(disp, "Alice", &seat);
    254         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    255 
    256         display_wnd_params_init(&params);
    257         params.rect.p0.x = params.rect.p0.y = 0;
    258         params.rect.p1.x = params.rect.p1.y = 1;
    259 
    260         rc = ds_window_create(client, &params, &wnd);
    261         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    262 
    263         /* New window gets focused event */
    264         PCUT_ASSERT_TRUE(called_cb);
    265 
    266         rc = ds_client_get_event(client, &rwindow, &revent);
    267         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    268 
    269         called_cb = false;
    270 
    271         rc = ds_client_get_event(client, &rwindow, &revent);
    272         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    273 
    274         efocus.nfocus = 42;
    275 
    276         rc = ds_client_post_focus_event(client, wnd, &efocus);
     227        display_wnd_params_init(&params);
     228        params.rect.p0.x = params.rect.p0.y = 0;
     229        params.rect.p1.x = params.rect.p1.y = 1;
     230
     231        rc = ds_window_create(client, &params, &wnd);
     232        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     233
     234        PCUT_ASSERT_FALSE(called_cb);
     235
     236        rc = ds_client_get_event(client, &rwindow, &revent);
     237        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     238
     239        rc = ds_client_post_focus_event(client, wnd);
    277240        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    278241        PCUT_ASSERT_TRUE(called_cb);
     
    282245        PCUT_ASSERT_EQUALS(wnd, rwindow);
    283246        PCUT_ASSERT_EQUALS(wev_focus, revent.etype);
    284         PCUT_ASSERT_INT_EQUALS(efocus.nfocus, revent.ev.focus.nfocus);
    285247
    286248        rc = ds_client_get_event(client, &rwindow, &revent);
     
    288250
    289251        ds_window_destroy(wnd);
    290         ds_seat_destroy(seat);
    291252        ds_client_destroy(client);
    292253        ds_display_destroy(disp);
     
    298259        ds_display_t *disp;
    299260        ds_client_t *client;
    300         ds_seat_t *seat;
    301261        ds_window_t *wnd;
    302262        display_wnd_params_t params;
     
    313273        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    314274
    315         rc = ds_seat_create(disp, "Alice", &seat);
    316         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    317 
    318         display_wnd_params_init(&params);
    319         params.rect.p0.x = params.rect.p0.y = 0;
    320         params.rect.p1.x = params.rect.p1.y = 1;
    321 
    322         rc = ds_window_create(client, &params, &wnd);
    323         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    324 
    325         /* New window gets focused event */
    326         PCUT_ASSERT_TRUE(called_cb);
    327 
    328         rc = ds_client_get_event(client, &rwindow, &revent);
    329         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    330 
    331         called_cb = false;
    332 
    333         rc = ds_client_get_event(client, &rwindow, &revent);
    334         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     275        display_wnd_params_init(&params);
     276        params.rect.p0.x = params.rect.p0.y = 0;
     277        params.rect.p1.x = params.rect.p1.y = 1;
     278
     279        rc = ds_window_create(client, &params, &wnd);
     280        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    335281
    336282        event.type = KEY_PRESS;
     
    338284        event.mods = 0;
    339285        event.c = L'\0';
     286
     287        PCUT_ASSERT_FALSE(called_cb);
     288
     289        rc = ds_client_get_event(client, &rwindow, &revent);
     290        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    340291
    341292        rc = ds_client_post_kbd_event(client, wnd, &event);
     
    356307
    357308        ds_window_destroy(wnd);
    358         ds_seat_destroy(seat);
    359309        ds_client_destroy(client);
    360310        ds_display_destroy(disp);
     
    366316        ds_display_t *disp;
    367317        ds_client_t *client;
    368         ds_seat_t *seat;
    369318        ds_window_t *wnd;
    370319        display_wnd_params_t params;
     
    381330        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    382331
    383         rc = ds_seat_create(disp, "Alice", &seat);
    384         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    385 
    386         display_wnd_params_init(&params);
    387         params.rect.p0.x = params.rect.p0.y = 0;
    388         params.rect.p1.x = params.rect.p1.y = 1;
    389 
    390         rc = ds_window_create(client, &params, &wnd);
    391         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    392 
    393         /* New window gets focused event */
    394         PCUT_ASSERT_TRUE(called_cb);
    395 
    396         rc = ds_client_get_event(client, &rwindow, &revent);
    397         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    398 
    399         called_cb = false;
    400 
    401         PCUT_ASSERT_FALSE(called_cb);
    402 
    403         rc = ds_client_get_event(client, &rwindow, &revent);
    404         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     332        display_wnd_params_init(&params);
     333        params.rect.p0.x = params.rect.p0.y = 0;
     334        params.rect.p1.x = params.rect.p1.y = 1;
     335
     336        rc = ds_window_create(client, &params, &wnd);
     337        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    405338
    406339        event.type = POS_PRESS;
    407340        event.hpos = 1;
    408341        event.vpos = 2;
     342
     343        PCUT_ASSERT_FALSE(called_cb);
     344
     345        rc = ds_client_get_event(client, &rwindow, &revent);
     346        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    409347
    410348        rc = ds_client_post_pos_event(client, wnd, &event);
     
    424362
    425363        ds_window_destroy(wnd);
    426         ds_seat_destroy(seat);
    427364        ds_client_destroy(client);
    428365        ds_display_destroy(disp);
     
    434371        ds_display_t *disp;
    435372        ds_client_t *client;
    436         ds_seat_t *seat;
    437373        ds_window_t *wnd;
    438374        display_wnd_params_t params;
     
    449385        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    450386
    451         rc = ds_seat_create(disp, "Alice", &seat);
    452         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    453 
    454         display_wnd_params_init(&params);
    455         params.rect.p0.x = params.rect.p0.y = 0;
    456         params.rect.p1.x = params.rect.p1.y = 1;
    457 
    458         rc = ds_window_create(client, &params, &wnd);
    459         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    460 
    461         /* New window gets focused event */
    462         PCUT_ASSERT_TRUE(called_cb);
    463 
    464         rc = ds_client_get_event(client, &rwindow, &revent);
    465         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    466 
    467         called_cb = false;
    468 
    469         PCUT_ASSERT_FALSE(called_cb);
    470 
    471         rc = ds_client_get_event(client, &rwindow, &revent);
    472         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     387        display_wnd_params_init(&params);
     388        params.rect.p0.x = params.rect.p0.y = 0;
     389        params.rect.p1.x = params.rect.p1.y = 1;
     390
     391        rc = ds_window_create(client, &params, &wnd);
     392        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    473393
    474394        rect.p0.x = 1;
     
    476396        rect.p1.x = 3;
    477397        rect.p1.y = 4;
     398
     399        PCUT_ASSERT_FALSE(called_cb);
     400
     401        rc = ds_client_get_event(client, &rwindow, &revent);
     402        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    478403
    479404        rc = ds_client_post_resize_event(client, wnd, &rect);
     
    494419
    495420        ds_window_destroy(wnd);
    496         ds_seat_destroy(seat);
    497421        ds_client_destroy(client);
    498422        ds_display_destroy(disp);
     
    504428        ds_display_t *disp;
    505429        ds_client_t *client;
    506         ds_seat_t *seat;
    507         ds_window_t *wnd;
    508         display_wnd_params_t params;
    509         ds_window_t *rwindow;
    510         display_wnd_unfocus_ev_t eunfocus;
    511         display_wnd_ev_t revent;
    512         bool called_cb = NULL;
    513         errno_t rc;
    514 
    515         rc = ds_display_create(NULL, df_none, &disp);
    516         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    517 
    518         rc = ds_client_create(disp, &test_ds_client_cb, &called_cb, &client);
    519         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    520 
    521         rc = ds_seat_create(disp, "Alice", &seat);
    522         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    523 
    524         display_wnd_params_init(&params);
    525         params.rect.p0.x = params.rect.p0.y = 0;
    526         params.rect.p1.x = params.rect.p1.y = 1;
    527 
    528         rc = ds_window_create(client, &params, &wnd);
    529         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    530 
    531         /* New window gets focused event */
    532         PCUT_ASSERT_TRUE(called_cb);
    533 
    534         rc = ds_client_get_event(client, &rwindow, &revent);
    535         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    536 
    537         called_cb = false;
    538 
    539         rc = ds_client_get_event(client, &rwindow, &revent);
    540         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    541 
    542         eunfocus.nfocus = 42;
    543 
    544         rc = ds_client_post_unfocus_event(client, wnd, &eunfocus);
    545         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    546         PCUT_ASSERT_TRUE(called_cb);
    547 
    548         rc = ds_client_get_event(client, &rwindow, &revent);
    549         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    550         PCUT_ASSERT_EQUALS(wnd, rwindow);
    551         PCUT_ASSERT_EQUALS(wev_unfocus, revent.etype);
    552         PCUT_ASSERT_INT_EQUALS(eunfocus.nfocus, revent.ev.unfocus.nfocus);
    553 
    554         rc = ds_client_get_event(client, &rwindow, &revent);
    555         PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    556 
    557         ds_window_destroy(wnd);
    558         ds_seat_destroy(seat);
    559         ds_client_destroy(client);
    560         ds_display_destroy(disp);
    561 }
    562 
    563 /** Test ds_client_purge_window_events() */
    564 PCUT_TEST(client_purge_window_events)
    565 {
    566         ds_display_t *disp;
    567         ds_client_t *client;
    568         ds_seat_t *seat;
    569430        ds_window_t *wnd;
    570431        display_wnd_params_t params;
     
    580441        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    581442
    582         rc = ds_seat_create(disp, "Alice", &seat);
    583         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    584 
    585         display_wnd_params_init(&params);
    586         params.rect.p0.x = params.rect.p0.y = 0;
    587         params.rect.p1.x = params.rect.p1.y = 1;
    588 
    589         rc = ds_window_create(client, &params, &wnd);
    590         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    591 
    592         /* New window gets focused event */
     443        display_wnd_params_init(&params);
     444        params.rect.p0.x = params.rect.p0.y = 0;
     445        params.rect.p1.x = params.rect.p1.y = 1;
     446
     447        rc = ds_window_create(client, &params, &wnd);
     448        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     449
     450        PCUT_ASSERT_FALSE(called_cb);
     451
     452        rc = ds_client_get_event(client, &rwindow, &revent);
     453        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     454
     455        rc = ds_client_post_unfocus_event(client, wnd);
     456        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    593457        PCUT_ASSERT_TRUE(called_cb);
    594458
    595         /* Purge it */
    596         ds_client_purge_window_events(client, wnd);
    597 
    598         /* The queue should be empty now */
     459        rc = ds_client_get_event(client, &rwindow, &revent);
     460        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     461        PCUT_ASSERT_EQUALS(wnd, rwindow);
     462        PCUT_ASSERT_EQUALS(wev_unfocus, revent.etype);
     463
    599464        rc = ds_client_get_event(client, &rwindow, &revent);
    600465        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
    601466
    602467        ds_window_destroy(wnd);
    603         ds_seat_destroy(seat);
    604468        ds_client_destroy(client);
    605469        ds_display_destroy(disp);
     
    615479        ds_display_t *disp;
    616480        ds_client_t *client;
    617         ds_seat_t *seat;
    618481        ds_window_t *wnd;
    619482        display_wnd_params_t params;
     
    626489        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    627490
    628         rc = ds_seat_create(disp, "Alice", &seat);
    629         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    630 
    631         display_wnd_params_init(&params);
    632         params.rect.p0.x = params.rect.p0.y = 0;
    633         params.rect.p1.x = params.rect.p1.y = 1;
    634 
    635         rc = ds_window_create(client, &params, &wnd);
    636         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    637 
    638         ds_seat_destroy(seat);
     491        display_wnd_params_init(&params);
     492        params.rect.p0.x = params.rect.p0.y = 0;
     493        params.rect.p1.x = params.rect.p1.y = 1;
     494
     495        rc = ds_window_create(client, &params, &wnd);
     496        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     497
    639498        ds_client_destroy(client);
    640499        ds_display_destroy(disp);
Note: See TracChangeset for help on using the changeset viewer.