diff options
author | Joe Hershberger <joe.hershberger@ni.com> | 2015-05-20 14:27:36 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-05-21 09:16:18 -0400 |
commit | 421f86f3293c63fa2669972fb7bdc5ae78729e50 (patch) | |
tree | 0a4cf02061c15201325179e5aa8842871ee0a284 /test | |
parent | b6227d3993db8f1763a8bd377b189e7b77cfe885 (diff) | |
download | u-boot-421f86f3293c63fa2669972fb7bdc5ae78729e50.tar.gz |
test: env: Add test framework for env
Add a new "env" subcommand to the ut command.
This will run unit tests on the env code. This should be targetable to
any device that supports the env features needed for the tests.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/Kconfig | 1 | ||||
-rw-r--r-- | test/cmd_ut.c | 6 | ||||
-rw-r--r-- | test/env/Kconfig | 8 | ||||
-rw-r--r-- | test/env/Makefile | 7 | ||||
-rw-r--r-- | test/env/cmd_ut_env.c | 37 |
5 files changed, 59 insertions, 0 deletions
diff --git a/test/Kconfig b/test/Kconfig index 50d3a49c97..d71c332eee 100644 --- a/test/Kconfig +++ b/test/Kconfig @@ -16,3 +16,4 @@ config UT_TIME this is a good place to start. source "test/dm/Kconfig" +source "test/env/Kconfig" diff --git a/test/cmd_ut.c b/test/cmd_ut.c index a65bfeaf31..f6e1f413db 100644 --- a/test/cmd_ut.c +++ b/test/cmd_ut.c @@ -16,6 +16,9 @@ static cmd_tbl_t cmd_ut_sub[] = { #if defined(CONFIG_UT_DM) U_BOOT_CMD_MKENT(dm, CONFIG_SYS_MAXARGS, 1, do_ut_dm, "", ""), #endif +#if defined(CONFIG_UT_ENV) + U_BOOT_CMD_MKENT(env, CONFIG_SYS_MAXARGS, 1, do_ut_env, "", ""), +#endif #ifdef CONFIG_UT_TIME U_BOOT_CMD_MKENT(time, CONFIG_SYS_MAXARGS, 1, do_ut_time, "", ""), #endif @@ -62,6 +65,9 @@ static char ut_help_text[] = #ifdef CONFIG_UT_DM "ut dm [test-name]\n" #endif +#ifdef CONFIG_UT_ENV + "ut env [test-name]\n" +#endif #ifdef CONFIG_UT_TIME "ut time - Very basic test of time functions\n" #endif diff --git a/test/env/Kconfig b/test/env/Kconfig new file mode 100644 index 0000000000..ff164132e9 --- /dev/null +++ b/test/env/Kconfig @@ -0,0 +1,8 @@ +config UT_ENV + bool "Enable env unit tests" + depends on UNIT_TEST + help + This enables the 'ut env' command which runs a series of unit + tests on the env code. + If all is well then all tests pass although there will be a few + messages printed along the way. diff --git a/test/env/Makefile b/test/env/Makefile new file mode 100644 index 0000000000..59b38e99ae --- /dev/null +++ b/test/env/Makefile @@ -0,0 +1,7 @@ +# +# Copyright (c) 2015 National Instruments, Inc +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += cmd_ut_env.o diff --git a/test/env/cmd_ut_env.c b/test/env/cmd_ut_env.c new file mode 100644 index 0000000000..893e5e6a6d --- /dev/null +++ b/test/env/cmd_ut_env.c @@ -0,0 +1,37 @@ +/* + * (C) Copyright 2015 + * Joe Hershberger, National Instruments, joe.hershberger@ni.com + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#include <common.h> +#include <command.h> +#include <test/env.h> +#include <test/suites.h> +#include <test/ut.h> + +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; +} |