blob: 9f16a978f2a774c7079fdd3a1da53bc718033864 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0
Joe Hershberger26e038f2015-05-20 14:27:36 -05002/*
3 * (C) Copyright 2015
4 * Joe Hershberger, National Instruments, joe.hershberger@ni.com
Joe Hershberger26e038f2015-05-20 14:27:36 -05005 */
6
Joe Hershberger26e038f2015-05-20 14:27:36 -05007#include <command.h>
8#include <test/env.h>
9#include <test/suites.h>
10#include <test/ut.h>
11
Ravi Minnikanticb803d72024-08-11 11:44:15 -070012static int env_test_env_cmd(struct unit_test_state *uts)
13{
14 ut_assertok(run_command("setenv non_default_var1 1", 0));
15 ut_assert_console_end();
16
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010017 ut_assertok(run_command("setenv non_default_var2 2", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070018 ut_assert_console_end();
19
20 ut_assertok(run_command("env print non_default_var1", 0));
21 ut_assert_nextline("non_default_var1=1");
22 ut_assert_console_end();
23
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010024 ut_assertok(run_command("env default non_default_var1", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070025 ut_assert_nextline("WARNING: 'non_default_var1' not in imported env, deleting it!");
Ravi Minnikanticb803d72024-08-11 11:44:15 -070026 ut_assert_console_end();
27
28 ut_asserteq(1, run_command("env exists non_default_var1", 0));
29 ut_assert_console_end();
30
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010031 ut_asserteq(0, run_command("env exists non_default_var2", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070032 ut_assert_console_end();
33
Rasmus Villemoes2477dbe2024-10-30 22:34:04 +010034 ut_assertok(run_command("setenv non_default_var1 3", 0));
35 ut_assert_console_end();
36
37 ut_assertok(run_command("env default -k non_default_var1", 0));
38 ut_assert_console_end();
39
40 ut_asserteq(0, run_command("env exists non_default_var1", 0));
41 ut_assert_console_end();
42
43 ut_asserteq(0, run_command("env exists non_default_var2", 0));
44 ut_assert_console_end();
45
46 ut_assertok(run_command("env default -k -a -f", 0));
47 ut_assert_nextline("## Resetting to default environment");
48 ut_assert_console_end();
49
50 ut_asserteq(0, run_command("env exists non_default_var1", 0));
51 ut_assert_console_end();
52
53 ut_asserteq(0, run_command("env exists non_default_var2", 0));
54 ut_assert_console_end();
55
56 /*
57 * While the following test of "env default -a" by itself
58 * works, it unfortunately causes an unrelated test case,
59 * env_test_fdt_import(), to fail, because the "from_fdt"
60 * variable would be removed.
61 */
62#if 0
63 ut_assertok(run_command("env default -a", 0));
64 ut_assert_nextline("## Resetting to default environment");
65 ut_assert_console_end();
66
67 ut_asserteq(1, run_command("env exists non_default_var1", 0));
68 ut_assert_console_end();
69
70 ut_asserteq(1, run_command("env exists non_default_var2", 0));
71 ut_assert_console_end();
72#endif
73
Ravi Minnikanticb803d72024-08-11 11:44:15 -070074 return 0;
75}
Simon Glass11fcfa32024-08-22 07:57:50 -060076ENV_TEST(env_test_env_cmd, UTF_CONSOLE);
Ravi Minnikanticb803d72024-08-11 11:44:15 -070077
Simon Glassed38aef2020-05-10 11:40:03 -060078int do_ut_env(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
Joe Hershberger26e038f2015-05-20 14:27:36 -050079{
Simon Glassb50211f2021-03-07 17:35:10 -070080 struct unit_test *tests = UNIT_TEST_SUITE_START(env_test);
81 const int n_ents = UNIT_TEST_SUITE_COUNT(env_test);
Joe Hershberger26e038f2015-05-20 14:27:36 -050082
Philippe Reynes1f99f842019-12-17 19:07:04 +010083 return cmd_ut_category("environment", "env_test_",
84 tests, n_ents, argc, argv);
Joe Hershberger26e038f2015-05-20 14:27:36 -050085}