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