summaryrefslogtreecommitdiff
path: root/tests/pke-test-types.h
blob: 5a9ee242178f947ee83f281cc3574021e759cdfb (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
35
36
37
38
39
40
41
#ifndef PKE_PKE_TEST_TYPES_H
#define PKE_PKE_TEST_TYPES_H

#include <setjmp.h>
#include <stdint.h>

struct pke_test_long_jump {
	uint8_t expected_exit;
	uint8_t caught;
	jmp_buf jump_env;
};
extern struct pke_test_long_jump lj;

typedef int (pke_test_func)();
struct pke_test_group;
typedef struct pke_test_group *(pke_test_get_group)();

typedef void (pke_test_group_setup());
typedef void (pke_test_group_teardown());
typedef void (pke_test_setup());
typedef void (pke_test_teardown());

struct pke_test {
	const char *title;
	pke_test_func *func;
	int expected_result;
};

struct pke_test_group {
	const char *title;
	pke_test_group_setup *group_setup;
	pke_test_group_teardown *group_teardown;
	pke_test_setup *test_setup;
	pke_test_teardown *test_teardown;
	struct pke_test *tests;
	uint32_t n_tests;
};

#define PKE_TEST_ASSERT(condition, index) if (!(condition)) { return ++index; } else { ++index; }

#endif /* PKE_PKE_TEST_TYPES_H */