aboutsummaryrefslogtreecommitdiff
path: root/test/src/util/test_timeout.c
blob: 21a13b0d62a572bb627a01565322cb4cfd240250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * ecgen, tool for generating Elliptic curve domain parameters
 * Copyright (C) 2017 J08nY
 */

#include <criterion/criterion.h>
#include "test/default.h"
#include "util/timeout.h"

void timeout_setup(void) {
	default_setup();
	timeout_init();
}

TestSuite(timeout, .init = timeout_setup, .fini = default_teardown);

Test(timeout, test_timeout_stop) {
	bool done = false;
	timeout_start(5) { cr_assert_fail(); }
	else {
		done = true;
	}
	timeout_stop();
	cr_assert(done, );
}

Test(timeout, test_timeout_handle) {
	bool done = false;
	timeout_start(1) { done = true; }
	else {
		sleep(2);
	}
	cr_assert(done, );
}