summaryrefslogtreecommitdiff
path: root/test/bootm.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-11-05 10:33:38 -0700
committerTom Rini <trini@konsulko.com>2020-12-04 16:09:26 -0500
commitf158ba15ee0f9f756193b60420adfdc0a9c1eb96 (patch)
tree7fa87c022e1258306c4c5947e661bcf039bfe7e7 /test/bootm.c
parent96434a76fd254248ded19e95dc967d28e65a5edf (diff)
bootm: Add tests for fixup_silent_linux()
This function currently has no tests. Export it so that we can implement a simple test on sandbox. Use IS_ENABLED() to remove the unused code, instead #ifdef. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test/bootm.c')
-rw-r--r--test/bootm.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/bootm.c b/test/bootm.c
new file mode 100644
index 0000000000..59d16cb3df
--- /dev/null
+++ b/test/bootm.c
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Tests for bootm routines
+ *
+ * Copyright 2020 Google LLC
+ */
+
+#include <common.h>
+#include <bootm.h>
+#include <test/suites.h>
+#include <test/test.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define BOOTM_TEST(_name, _flags) UNIT_TEST(_name, _flags, bootm_test)
+
+#define CONSOLE_STR "console=/dev/ttyS0"
+
+/* Test silent processing in the bootargs variable */
+static int bootm_test_silent_var(struct unit_test_state *uts)
+{
+ /* 'silent_linux' not set should do nothing */
+ env_set("silent_linux", NULL);
+ env_set("bootargs", CONSOLE_STR);
+ fixup_silent_linux();
+ ut_asserteq_str(CONSOLE_STR, env_get("bootargs"));
+
+ env_set("bootargs", NULL);
+ fixup_silent_linux();
+ ut_assertnull(env_get("bootargs"));
+
+ ut_assertok(env_set("silent_linux", "no"));
+ env_set("bootargs", CONSOLE_STR);
+ fixup_silent_linux();
+ ut_asserteq_str(CONSOLE_STR, env_get("bootargs"));
+
+ ut_assertok(env_set("silent_linux", "yes"));
+ env_set("bootargs", CONSOLE_STR);
+ fixup_silent_linux();
+ ut_asserteq_str("console=", env_get("bootargs"));
+
+ /* Empty buffer should still add the string */
+ env_set("bootargs", NULL);
+ fixup_silent_linux();
+ ut_asserteq_str("console=", env_get("bootargs"));
+
+ return 0;
+}
+BOOTM_TEST(bootm_test_silent_var, 0);
+
+int do_ut_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
+{
+ struct unit_test *tests = ll_entry_start(struct unit_test, bootm_test);
+ const int n_ents = ll_entry_count(struct unit_test, bootm_test);
+
+ return cmd_ut_category("bootm", "bootm_test_", tests, n_ents,
+ argc, argv);
+}