1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * (C) Copyright 2015
4 * Joe Hershberger, National Instruments, joe.hershberger@ni.com
5 */
6
7 #include <test/env.h>
8 #include <test/ut.h>
9
env_test_env_cmd(struct unit_test_state * uts)10 static 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
15 ut_assertok(run_command("setenv non_default_var2 2", 0));
16 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
22 ut_assertok(run_command("env default non_default_var1", 0));
23 ut_assert_nextline("WARNING: 'non_default_var1' not in imported env, deleting it!");
24 ut_assert_console_end();
25
26 ut_asserteq(1, run_command("env exists non_default_var1", 0));
27 ut_assert_console_end();
28
29 ut_asserteq(0, run_command("env exists non_default_var2", 0));
30 ut_assert_console_end();
31
32 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
72 return 0;
73 }
74 ENV_TEST(env_test_env_cmd, UTF_CONSOLE);
75