#ifndef PKE_PKE_TEST_TYPES_H #define PKE_PKE_TEST_TYPES_H #include #include 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 */