summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-05-08 11:26:46 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-05-16 11:55:31 +0800
commit03a5c955fdada22bbfae50dadfa0004fa80821f5 (patch)
tree90ed332f941ec0fe3891bf418f7863c64757fcb7
parent30b2ac42df8827f2181c7294b2a628bbcc1cfef8 (diff)
downloadtalos-petitboot-03a5c955fdada22bbfae50dadfa0004fa80821f5.tar.gz
talos-petitboot-03a5c955fdada22bbfae50dadfa0004fa80821f5.zip
test/parser: Add simple GRUB2 parser test
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--test/parser/Makefile.am2
-rw-r--r--test/parser/test-grub2-single.c29
2 files changed, 31 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index 3733039..cd8da4a 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -25,6 +25,7 @@ AM_CPPFLAGS = \
AM_CFLAGS = -O0 -ggdb -Wall -Wextra -Werror
TESTS = test-null \
+ test-grub2-single \
test-kboot-single \
test-yaboot-single \
test-yaboot-external
@@ -42,6 +43,7 @@ libtest.o: $(libtest_o_OBJECTS)
# objects under test
parser_test_objs = $(top_srcdir)/discover/yaboot-parser.c \
$(top_srcdir)/discover/kboot-parser.c \
+ $(top_srcdir)/discover/grub2-parser.c \
$(top_srcdir)/discover/resource.c \
$(top_srcdir)/discover/paths.c \
$(top_srcdir)/discover/device-handler.c \
diff --git a/test/parser/test-grub2-single.c b/test/parser/test-grub2-single.c
new file mode 100644
index 0000000..7db8eb9
--- /dev/null
+++ b/test/parser/test-grub2-single.c
@@ -0,0 +1,29 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+menuentry 'Linux' --class test-class $menuentry_id_option 'test-id' {
+ linux /vmlinux arg1=value1 arg2
+ initrd /initrd
+}
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_read_conf_embedded(test);
+ test_run_parser(test, "grub2");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 1);
+ opt = get_boot_option(ctx, 0);
+
+ check_name(opt, "Linux");
+ check_resolved_local_resource(opt->boot_image, ctx->device, "/vmlinux");
+ check_resolved_local_resource(opt->initrd, ctx->device, "/initrd");
+
+ check_args(opt, "arg1=value1 arg2");
+}
OpenPOWER on IntegriCloud