[PATCH v2] tests: add test-compositor

Pekka Paalanen ppaalanen at gmail.com
Fri Aug 22 03:19:00 PDT 2014


On Thu, 21 Aug 2014 16:52:16 +0200
Marek Chalupa <mchqwerty at gmail.com> wrote:

> This patch introduces a set of functions that can create a display
> and clients for tests.
> On server side the user can use functions:
>   display_create()
>   display_destroy()
>   create_client()
>   display_run()
>   display_resume()
> and on client side the user can use:
>   client_connect()
>   client_disconnect()
>   stop_display()
> 
> The stop_display() and display_resume() are functions that serve as a
> barrier and also allow the display to take some action after the
> display_run() was called, because after the display is stopped, it
> can run arbitrary code until it calls display_resume().
> 
> client_connect() function connects to wayland display and creates a
> proxy to test_compositor global object, so it can ask for stopping
> the display later using stop_display().
> 
> An example:
> 
>   void
>   client_main()
>   {
>         /* or client can use wl_display_connect(NULL)
>          * and do all the stuff manually */
>         struct client *c = client_connect();
> 
>         /* do some stuff, ... */
> 
>         /* stop the display so that it can
>          * do some other stuff */
>         stop_display(c, 1);
> 
>         /* ... */
> 
>         client_disconnect(c);
>   }
> 
>   TEST(dummy_tst)
>   {
>        struct display *d = display_create();
> 
>        /* set up the display */
>        wl_global_create(d->wl_display, ...);
> 
>        /* ... */
> 
>        create_client(d, client_main);
>        display_run();
> 
>        /* if we are here, the display has been stopped
>         * and we can do some code, i. e. create another global or so
> */ wl_global_create(d->wl_display, ...);
> 
>        /* ... */
> 
>        display_resume(d); /* resume display and clients */
> 
>        display_destroy(d);
>   }
> 
> v2:
>   added/changed message in few asserts that were not clear
>   fixed codying style issues and typo
>   client_create_with_name: fixed a condition in an assert
>   get_socket_name: use also pid
>   check_error: fix errno -> err
> 
> Signed-off-by: Marek Chalupa <mchqwerty at gmail.com>
> ---
>  Makefile.am             |   3 +-
>  tests/test-compositor.c | 467
> ++++++++++++++++++++++++++++++++++++++++++++++++
> tests/test-compositor.h |  97 ++++++++++ 3 files changed, 566
> insertions(+), 1 deletion(-) create mode 100644
> tests/test-compositor.c create mode 100644 tests/test-compositor.h

Hi,

excellent, pushed with some minor fixes.

I also applied and pushed:

[PATCH v2] tests: use test compositor in queue-test
[PATCH 3/3] tests: test posting errors
[PATCH] tests: test if thread can block on error
[PATCH] tests: add tests for wl_display_cancel_read
[PATCH] tests: add test for reading after an error occurred

A couple of cases in the display tests fail as expected, and I am
looking at their fixes next.


Thanks,
pq


More information about the wayland-devel mailing list