mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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>
This commit is contained in:
parent
b6227d3993
commit
421f86f329
8 changed files with 77 additions and 0 deletions
1
Makefile
1
Makefile
|
@ -666,6 +666,7 @@ libs-$(CONFIG_API) += api/
|
||||||
libs-$(CONFIG_HAS_POST) += post/
|
libs-$(CONFIG_HAS_POST) += post/
|
||||||
libs-y += test/
|
libs-y += test/
|
||||||
libs-y += test/dm/
|
libs-y += test/dm/
|
||||||
|
libs-$(CONFIG_UT_ENV) += test/env/
|
||||||
|
|
||||||
libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
|
libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
|
||||||
|
|
||||||
|
|
16
include/test/env.h
Normal file
16
include/test/env.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2015
|
||||||
|
* Joe Hershberger, National Instruments, joe.hershberger@ni.com
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __TEST_ENV_H__
|
||||||
|
#define __TEST_ENV_H__
|
||||||
|
|
||||||
|
#include <test/test.h>
|
||||||
|
|
||||||
|
/* Declare a new environment test */
|
||||||
|
#define ENV_TEST(_name, _flags) UNIT_TEST(_name, _flags, env_test)
|
||||||
|
|
||||||
|
#endif /* __TEST_ENV_H__ */
|
|
@ -9,6 +9,7 @@
|
||||||
#define __TEST_SUITES_H__
|
#define __TEST_SUITES_H__
|
||||||
|
|
||||||
int do_ut_dm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
int do_ut_dm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
||||||
|
int do_ut_env(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
||||||
int do_ut_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
int do_ut_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
||||||
|
|
||||||
#endif /* __TEST_SUITES_H__ */
|
#endif /* __TEST_SUITES_H__ */
|
||||||
|
|
|
@ -16,3 +16,4 @@ config UT_TIME
|
||||||
this is a good place to start.
|
this is a good place to start.
|
||||||
|
|
||||||
source "test/dm/Kconfig"
|
source "test/dm/Kconfig"
|
||||||
|
source "test/env/Kconfig"
|
||||||
|
|
|
@ -16,6 +16,9 @@ static cmd_tbl_t cmd_ut_sub[] = {
|
||||||
#if defined(CONFIG_UT_DM)
|
#if defined(CONFIG_UT_DM)
|
||||||
U_BOOT_CMD_MKENT(dm, CONFIG_SYS_MAXARGS, 1, do_ut_dm, "", ""),
|
U_BOOT_CMD_MKENT(dm, CONFIG_SYS_MAXARGS, 1, do_ut_dm, "", ""),
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(CONFIG_UT_ENV)
|
||||||
|
U_BOOT_CMD_MKENT(env, CONFIG_SYS_MAXARGS, 1, do_ut_env, "", ""),
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_UT_TIME
|
#ifdef CONFIG_UT_TIME
|
||||||
U_BOOT_CMD_MKENT(time, CONFIG_SYS_MAXARGS, 1, do_ut_time, "", ""),
|
U_BOOT_CMD_MKENT(time, CONFIG_SYS_MAXARGS, 1, do_ut_time, "", ""),
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,6 +65,9 @@ static char ut_help_text[] =
|
||||||
#ifdef CONFIG_UT_DM
|
#ifdef CONFIG_UT_DM
|
||||||
"ut dm [test-name]\n"
|
"ut dm [test-name]\n"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_UT_ENV
|
||||||
|
"ut env [test-name]\n"
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_UT_TIME
|
#ifdef CONFIG_UT_TIME
|
||||||
"ut time - Very basic test of time functions\n"
|
"ut time - Very basic test of time functions\n"
|
||||||
#endif
|
#endif
|
||||||
|
|
8
test/env/Kconfig
vendored
Normal file
8
test/env/Kconfig
vendored
Normal file
|
@ -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.
|
7
test/env/Makefile
vendored
Normal file
7
test/env/Makefile
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015 National Instruments, Inc
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
|
||||||
|
obj-y += cmd_ut_env.o
|
37
test/env/cmd_ut_env.c
vendored
Normal file
37
test/env/cmd_ut_env.c
vendored
Normal file
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in a new issue