18#include <ecoli_utils.h>
32#define EC_TEST_REGISTER(t) \
33 static void ec_test_init_##t(void); \
34 static void __attribute__((constructor, used)) \
35 ec_test_init_##t(void) \
37 if (ec_test_register(&t) < 0) \
38 fprintf(stderr, "cannot register test %s\n", \
54TAILQ_HEAD(ec_test_list,
ec_test);
105#define EC_TEST_ERR(fmt, ...) \
106 EC_LOG(EC_LOG_ERR, "%s:%d: error: " fmt "\n", \
107 __FILE__, __LINE__, ##__VA_ARGS__); \
114#define EC_TEST_CHECK(cond, fmt, ...) ({ \
117 EC_TEST_ERR("(" #cond ") is wrong. " fmt \
129#define EC_TEST_CHECK_PARSE(node, args...) ({ \
130 int ret_ = ec_test_check_parse(node, args, EC_VA_END); \
132 EC_TEST_ERR("parse test failed"); \
137int ec_test_check_complete(
struct ec_node *node,
138 enum ec_comp_type type, ...);
141#define EC_TEST_CHECK_COMPLETE(node, args...) ({ \
142 int ret_ = ec_test_check_complete(node, EC_COMP_FULL, args); \
144 EC_TEST_ERR("complete test failed"); \
149#define EC_TEST_CHECK_COMPLETE_PARTIAL(node, args...) ({ \
150 int ret_ = ec_test_check_complete(node, EC_COMP_PARTIAL, args); \
152 EC_TEST_ERR("complete test failed"); \
struct ec_node * ec_node(const char *typename, const char *id)
int ec_test_register(struct ec_test *test)
int ec_test_check_parse(struct ec_node *node, int expected,...)
int ec_test_one(const char *name)