blob: 097d42f29199668e5dc6eec9aabef39566cbad56 (
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
42
43
44
45
46
47
|
#ifndef PKE_PKE_TEST_TYPES_H
#define PKE_PKE_TEST_TYPES_H
#include <setjmp.h>
#include <stdint.h>
#include <cmath>
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; }
template<typename T>
inline bool flt_equal(T a, T b, T epsilon) {
return std::abs(a - b) < epsilon;
}
#endif /* PKE_PKE_TEST_TYPES_H */
|