void ec_test_register(struct ec_test *test)
{
TAILQ_INSERT_TAIL(&test_list, test, next);
+ // XXX check if already exist, like for type
}
int ec_test_check_tk_parse(struct ec_tk *tk, int expected, ...)
return ret;
}
-int ec_test_check_tk_complete(const struct ec_tk *tk, ...)
+int ec_test_check_tk_complete(struct ec_tk *tk, ...)
{
struct ec_completed_tk *c = NULL;
struct ec_completed_tk_elt *elt;
return ret;
}
-int ec_test_all(void)
+static int launch_test(const char *name)
{
struct ec_test *test;
int ret = 0;
+ unsigned int count = 0;
TAILQ_FOREACH(test, &test_list, next) {
+ if (name != NULL && strcmp(name, test->name))
+ continue;
+
ec_log(EC_LOG_INFO, "== starting test %-20s\n", test->name);
+ count++;
if (test->test() == 0) {
ec_log(EC_LOG_INFO, "== test %-20s success\n",
test->name);
}
}
+ if (name != NULL && count == 0)
+ ec_log(EC_LOG_WARNING, "== test %s not found\n", name);
+
return ret;
}
+
+int ec_test_all(void)
+{
+ return launch_test(NULL);
+}
+
+int ec_test_one(const char *name)
+{
+ return launch_test(name);
+}