summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-05-10 12:00:23 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-05-16 12:21:56 +0800
commit5024701da503c883bd23eb2b443b03297a0e8594 (patch)
tree97ae4c9c8099f560c9b9c9476a5b2c5aa005a5ba /test
parent70ad7ba01b43404585c76512bffe99ede0c0f55a (diff)
downloadtalos-petitboot-5024701da503c883bd23eb2b443b03297a0e8594.tar.gz
talos-petitboot-5024701da503c883bd23eb2b443b03297a0e8594.zip
test/parser: Add grub2 multiple resolution test
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test')
-rw-r--r--test/parser/Makefile.am1
-rw-r--r--test/parser/test-grub2-multiple-resolve.c41
2 files changed, 42 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index f711c1e..e330e82 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -26,6 +26,7 @@ AM_CFLAGS = -O0 -ggdb -Wall -Wextra -Werror
TESTS = test-null \
test-grub2-single \
+ test-grub2-multiple-resolve \
test-grub2-f18-ppc64 \
test-kboot-single \
test-yaboot-single \
diff --git a/test/parser/test-grub2-multiple-resolve.c b/test/parser/test-grub2-multiple-resolve.c
new file mode 100644
index 0000000..3bf4eab
--- /dev/null
+++ b/test/parser/test-grub2-multiple-resolve.c
@@ -0,0 +1,41 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+menuentry 'Linux 1' {
+ search --set=root 48c1b787-20ad-47ce-b9eb-b108dddc3535
+ linux /vmlinux
+}
+
+menuentry 'Linux 2' {
+ search --set=root 48c1b787-20ad-47ce-b9eb-b108dddc3535
+ linux /vmlinux
+}
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt[2];
+ struct discover_context *ctx;
+ struct discover_device *dev;
+
+ test_read_conf_embedded(test);
+ test_run_parser(test, "grub2");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 2);
+
+ opt[0] = get_boot_option(ctx, 0);
+ opt[1] = get_boot_option(ctx, 1);
+
+ check_unresolved_resource(opt[0]->boot_image);
+ check_unresolved_resource(opt[1]->boot_image);
+
+ dev = test_create_device(ctx, "external");
+ dev->uuid = "48c1b787-20ad-47ce-b9eb-b108dddc3535";
+ test_hotplug_device(test, dev);
+
+ check_resolved_local_resource(opt[0]->boot_image, dev, "/vmlinux");
+ check_resolved_local_resource(opt[1]->boot_image, dev, "/vmlinux");
+}
OpenPOWER on IntegriCloud