blob: 43f1b7d1cef8a1435e4ee37c6d5e13d2c4312e97 [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 <test/env.h>
Joe Hershberger26e038f2015-05-20 14:27:36 -05008#include <test/ut.h>
9
Ravi Minnikanticb803d72024-08-11 11:44:15 -070010static int env_test_env_cmd(struct unit_test_state *uts)
11{
12 ut_assertok(run_command("setenv non_default_var1 1", 0));
13 ut_assert_console_end();
14
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010015 ut_assertok(run_command("setenv non_default_var2 2", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070016 ut_assert_console_end();
17
18 ut_assertok(run_command("env print non_default_var1", 0));
19 ut_assert_nextline("non_default_var1=1");
20 ut_assert_console_end();
21
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010022 ut_assertok(run_command("env default non_default_var1", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070023 ut_assert_nextline("WARNING: 'non_default_var1' not in imported env, deleting it!");
Ravi Minnikanticb803d72024-08-11 11:44:15 -070024 ut_assert_console_end();
25
26 ut_asserteq(1, run_command("env exists non_default_var1", 0));
27 ut_assert_console_end();
28
Rasmus Villemoesfe641d32024-10-30 22:34:03 +010029 ut_asserteq(0, run_command("env exists non_default_var2", 0));
Ravi Minnikanticb803d72024-08-11 11:44:15 -070030 ut_assert_console_end();
31
Rasmus Villemoes2477dbe2024-10-30 22:34:04 +010032 ut_assertok(run_command("setenv non_default_var1 3", 0));
33 ut_assert_console_end();
34
35 ut_assertok(run_command("env default -k non_default_var1", 0));
36 ut_assert_console_end();
37
38 ut_asserteq(0, run_command("env exists non_default_var1", 0));
39 ut_assert_console_end();
40
41 ut_asserteq(0, run_command("env exists non_default_var2", 0));
42 ut_assert_console_end();
43
44 ut_assertok(run_command("env default -k -a -f", 0));
45 ut_assert_nextline("## Resetting to default environment");
46 ut_assert_console_end();
47
48 ut_asserteq(0, run_command("env exists non_default_var1", 0));
49 ut_assert_console_end();
50
51 ut_asserteq(0, run_command("env exists non_default_var2", 0));
52 ut_assert_console_end();
53
54 /*
55 * While the following test of "env default -a" by itself
56 * works, it unfortunately causes an unrelated test case,
57 * env_test_fdt_import(), to fail, because the "from_fdt"
58 * variable would be removed.
59 */
60#if 0
61 ut_assertok(run_command("env default -a", 0));
62 ut_assert_nextline("## Resetting to default environment");
63 ut_assert_console_end();
64
65 ut_asserteq(1, run_command("env exists non_default_var1", 0));
66 ut_assert_console_end();
67
68 ut_asserteq(1, run_command("env exists non_default_var2", 0));
69 ut_assert_console_end();
70#endif
71
Ravi Minnikanticb803d72024-08-11 11:44:15 -070072 return 0;
73}
Simon Glass11fcfa32024-08-22 07:57:50 -060074ENV_TEST(env_test_env_cmd, UTF_CONSOLE);