summaryrefslogtreecommitdiffstats
path: root/test/parser
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javierm@redhat.com>2019-06-20 18:09:56 +0200
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2019-06-21 13:42:20 +1000
commit7edc34c4ee8dc0913ea1a4ec64d3fbe6d64afc6d (patch)
treeab7abfb620d9606c09a9c10901e50239470cea8b /test/parser
parent53e0f3ef35ac694220dce135f01a4f736cbd1c19 (diff)
downloadtalos-petitboot-7edc34c4ee8dc0913ea1a4ec64d3fbe6d64afc6d.tar.gz
talos-petitboot-7edc34c4ee8dc0913ea1a4ec64d3fbe6d64afc6d.zip
discover/grub2: Allow to separate the --id argument using a space char
The GRUB menuentry command allows to separate the arguments for options using either a '=' or a ' '. The latter is the convention used when the menu entries are defined in the GRUB config file, but this is currently not supported by Petitboot. Add tests to cover both using '--id=foo' and '--id foo' as options. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'test/parser')
-rw-r--r--test/parser/Makefile.am2
-rw-r--r--test/parser/test-grub2-default-id-space.c34
-rw-r--r--test/parser/test-grub2-default-id.c34
3 files changed, 70 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index f9083bd..748c836 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -19,6 +19,8 @@ parser_TESTS = \
test/parser/test-grub2-noeol \
test/parser/test-grub2-menuentry-formats \
test/parser/test-grub2-if-formats \
+ test/parser/test-grub2-default-id \
+ test/parser/test-grub2-default-id-space \
test/parser/test-grub2-default-index \
test/parser/test-grub2-default-multiword \
test/parser/test-grub2-implicit-default-unset \
diff --git a/test/parser/test-grub2-default-id-space.c b/test/parser/test-grub2-default-id-space.c
new file mode 100644
index 0000000..df0eb2a
--- /dev/null
+++ b/test/parser/test-grub2-default-id-space.c
@@ -0,0 +1,34 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+set default=option1
+menuentry 'test-option-0' --id option0 {
+ linux /vmlinux.0
+}
+menuentry 'test-option-1' --id option1 {
+ linux /vmlinux.1
+}
+menuentry 'test-option-2' --id option2 {
+ linux /vmlinux.2
+}
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_read_conf_embedded(test, "/boot/grub2/grub.cfg");
+ test_run_parser(test, "grub2");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 3);
+ opt = get_boot_option(ctx, 1);
+
+ check_name(opt, "test-option-1");
+ check_resolved_local_resource(opt->boot_image, ctx->device,
+ "/vmlinux.1");
+ check_is_default(opt);
+}
diff --git a/test/parser/test-grub2-default-id.c b/test/parser/test-grub2-default-id.c
new file mode 100644
index 0000000..a41a4f9
--- /dev/null
+++ b/test/parser/test-grub2-default-id.c
@@ -0,0 +1,34 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+set default=option1
+menuentry 'test-option-0' --id=option0 {
+ linux /vmlinux.0
+}
+menuentry 'test-option-1' --id=option1 {
+ linux /vmlinux.1
+}
+menuentry 'test-option-2' --id=option2 {
+ linux /vmlinux.2
+}
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_read_conf_embedded(test, "/boot/grub2/grub.cfg");
+ test_run_parser(test, "grub2");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 3);
+ opt = get_boot_option(ctx, 1);
+
+ check_name(opt, "test-option-1");
+ check_resolved_local_resource(opt->boot_image, ctx->device,
+ "/vmlinux.1");
+ check_is_default(opt);
+}
OpenPOWER on IntegriCloud