xref: /openbmc/u-boot/test/env/cmd_ut_env.c (revision 421f86f3)
1*421f86f3SJoe Hershberger /*
2*421f86f3SJoe Hershberger  * (C) Copyright 2015
3*421f86f3SJoe Hershberger  * Joe Hershberger, National Instruments, joe.hershberger@ni.com
4*421f86f3SJoe Hershberger  *
5*421f86f3SJoe Hershberger  * SPDX-License-Identifier:	GPL-2.0
6*421f86f3SJoe Hershberger  */
7*421f86f3SJoe Hershberger 
8*421f86f3SJoe Hershberger #include <common.h>
9*421f86f3SJoe Hershberger #include <command.h>
10*421f86f3SJoe Hershberger #include <test/env.h>
11*421f86f3SJoe Hershberger #include <test/suites.h>
12*421f86f3SJoe Hershberger #include <test/ut.h>
13*421f86f3SJoe Hershberger 
14*421f86f3SJoe Hershberger int do_ut_env(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
15*421f86f3SJoe Hershberger {
16*421f86f3SJoe Hershberger 	struct unit_test *tests = ll_entry_start(struct unit_test, env_test);
17*421f86f3SJoe Hershberger 	const int n_ents = ll_entry_count(struct unit_test, env_test);
18*421f86f3SJoe Hershberger 	struct unit_test_state uts = { .fail_count = 0 };
19*421f86f3SJoe Hershberger 	struct unit_test *test;
20*421f86f3SJoe Hershberger 
21*421f86f3SJoe Hershberger 	if (argc == 1)
22*421f86f3SJoe Hershberger 		printf("Running %d environment tests\n", n_ents);
23*421f86f3SJoe Hershberger 
24*421f86f3SJoe Hershberger 	for (test = tests; test < tests + n_ents; test++) {
25*421f86f3SJoe Hershberger 		if (argc > 1 && strcmp(argv[1], test->name))
26*421f86f3SJoe Hershberger 			continue;
27*421f86f3SJoe Hershberger 		printf("Test: %s\n", test->name);
28*421f86f3SJoe Hershberger 
29*421f86f3SJoe Hershberger 		uts.start = mallinfo();
30*421f86f3SJoe Hershberger 
31*421f86f3SJoe Hershberger 		test->func(&uts);
32*421f86f3SJoe Hershberger 	}
33*421f86f3SJoe Hershberger 
34*421f86f3SJoe Hershberger 	printf("Failures: %d\n", uts.fail_count);
35*421f86f3SJoe Hershberger 
36*421f86f3SJoe Hershberger 	return uts.fail_count ? CMD_RET_FAILURE : 0;
37*421f86f3SJoe Hershberger }
38