test/parser: Add yaboot leftovers test
authorJeremy Kerr <jk@ozlabs.org>
Tue, 14 Jan 2014 03:15:03 +0000 (11:15 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Tue, 14 Jan 2014 03:15:03 +0000 (11:15 +0800)
Add a test to ensure that boot option parameters don't leak into later
options.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
test/parser/Makefile.am
test/parser/test-yaboot-leftovers.c [new file with mode: 0644]

index 8af41905a1007185f4a84d8be69a0691aab00e5f..4c3cc693a8f5fa2f46b0befdd1780281aa77d4f6 100644 (file)
@@ -51,6 +51,7 @@ TESTS = \
        test-yaboot-root-override \
        test-yaboot-device-override \
        test-yaboot-global-state \
+       test-yaboot-leftovers \
        test-yaboot-default \
        test-yaboot-rh8-ppc64 \
        test-pxe-empty \
diff --git a/test/parser/test-yaboot-leftovers.c b/test/parser/test-yaboot-leftovers.c
new file mode 100644 (file)
index 0000000..fc81284
--- /dev/null
@@ -0,0 +1,35 @@
+#include "parser-test.h"
+
+/* Test that an absent parameter in one boot option doesn't get set by a
+ * previous option */
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+image=/boot/vmlinux-1
+  label=one
+  literal="console=XXXX"
+
+image=/boot/vmlinux-2
+  label=two
+#endif
+
+void run_test(struct parser_test *test)
+{
+       struct discover_boot_option *opt;
+       struct discover_context *ctx;
+
+       test_read_conf_embedded(test, "/etc/yaboot.conf");
+
+       test_run_parser(test, "yaboot");
+
+       ctx = test->ctx;
+
+       check_boot_option_count(ctx, 2);
+
+       opt = get_boot_option(ctx, 0);
+       check_name(opt, "one");
+       check_args(opt, "console=XXXX");
+
+       opt = get_boot_option(ctx, 1);
+       check_name(opt, "two");
+       check_args(opt, "");
+}