test: Add a command function for test execution

The logic to either iterate through a list of tests or pick a named test
is common to at lest two test suits. Move this logic into a new function
and call it from the environment tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2017-11-25 11:57:29 -07:00
committed by Tom Rini
parent b59670f2bd
commit 4d869c1e49
3 changed files with 42 additions and 18 deletions

19
test/env/cmd_ut_env.c vendored
View File

@@ -15,23 +15,6 @@ int do_ut_env(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
struct unit_test *tests = ll_entry_start(struct unit_test, env_test);
const int n_ents = ll_entry_count(struct unit_test, env_test);
struct unit_test_state uts = { .fail_count = 0 };
struct unit_test *test;
if (argc == 1)
printf("Running %d environment tests\n", n_ents);
for (test = tests; test < tests + n_ents; test++) {
if (argc > 1 && strcmp(argv[1], test->name))
continue;
printf("Test: %s\n", test->name);
uts.start = mallinfo();
test->func(&uts);
}
printf("Failures: %d\n", uts.fail_count);
return uts.fail_count ? CMD_RET_FAILURE : 0;
return cmd_ut_category("environment", tests, n_ents, argc, argv);
}