diff options
author | Marek Chalupa <mchqwerty@gmail.com> | 2014-09-09 11:11:52 +0200 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-09-09 12:43:38 +0300 |
commit | d8377411663ff4c17d8752e1be1cf94d00f4dc54 (patch) | |
tree | 50ae71c8a294e18e634f202bf51f72c116b56a99 | |
parent | 44bf13ba0f3b881c0c5055a7225591395bc80583 (diff) |
tests: use nanosleep instead of usleep
man usleep says that bahaviour of using usleep with SIGALRM signal
is unspecified. So create our own usleep that calls nanosleep instead.
Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | tests/display-test.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/display-test.c b/tests/display-test.c index 1289866..451cabd 100644 --- a/tests/display-test.c +++ b/tests/display-test.c @@ -333,6 +333,21 @@ register_reading(struct wl_display *display) assert(wl_display_flush(display) >= 0); } +#define USEC_TO_NSEC(n) (1000 * (n)) + +/* since we are using alarm() and SIGABRT, we can not + * use usleep function (see 'man usleep') */ +static void +test_usleep(useconds_t usec) +{ + struct timespec ts = { + .tv_sec = 0, + .tv_nsec = USEC_TO_NSEC(usec) + }; + + assert(nanosleep(&ts, NULL) == 0); +} + /* create thread that will call prepare+read so that * it will block */ static pthread_t @@ -349,8 +364,8 @@ create_thread(struct client *c, void *(*func)(void*)) * so call usleep once again after the loop ends - it should * be sufficient... */ while (c->display_stopped == 0) - usleep(500); - usleep(10000); + test_usleep(500); + test_usleep(10000); return thread; } @@ -517,8 +532,8 @@ threading_read_after_error(void) /* make sure thread is sleeping */ while (c->display_stopped == 0) - usleep(500); - usleep(10000); + test_usleep(500); + test_usleep(10000); assert(wl_display_read_events(c->wl_display) == -1); |