summaryrefslogtreecommitdiffstats
path: root/test/parser
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javierm@redhat.com>2018-04-17 19:09:00 +0200
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-04-18 11:10:48 +1000
commitc41ffccdaf16b0820904c5dd2e5d7612bfbefc65 (patch)
treef87703a1a1544c43b5030b98792297be5e986baf /test/parser
parentf78714f16515783d79e636040cedccb3eb6611a3 (diff)
downloadtalos-petitboot-c41ffccdaf16b0820904c5dd2e5d7612bfbefc65.tar.gz
talos-petitboot-c41ffccdaf16b0820904c5dd2e5d7612bfbefc65.zip
discover/grub: Allow to set a default index for BLS entries
When the BLS support was added, the conclusion was that default indexes didn't apply for BLS snippets. But for GRUB 2 the indexes refers to the boot menu entries in memory, regardless of how these were generated. Since in GRUB 2 is valid to set a default index even for menu entries generated from BLS fragments, allow this to also be done in Petitboot. 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.am1
-rw-r--r--test/parser/test-grub2-blscfg-default-index.c45
2 files changed, 46 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index 3479d88..6ff3972 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -41,6 +41,7 @@ parser_TESTS = \
test/parser/test-grub2-test-file-ops \
test/parser/test-grub2-single-yocto \
test/parser/test-grub2-blscfg-default-filename \
+ test/parser/test-grub2-blscfg-default-index \
test/parser/test-grub2-blscfg-default-title \
test/parser/test-grub2-blscfg-multiple-bls \
test/parser/test-grub2-blscfg-opts-config \
diff --git a/test/parser/test-grub2-blscfg-default-index.c b/test/parser/test-grub2-blscfg-default-index.c
new file mode 100644
index 0000000..4ef3e2e
--- /dev/null
+++ b/test/parser/test-grub2-blscfg-default-index.c
@@ -0,0 +1,45 @@
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+set default=2
+menuentry 'title Fedora (4.15-9-304.fc28.x86_64) 28 (Twenty Eight)' {
+ linux /vmlinuz-4.15-9-301.fc28.x86_64
+}
+
+menuentry 'title Fedora (4.15.6-300.fc28.x86_64) 28 (Twenty Eight)' {
+ linux /vmlinuz-4.15.6-300.fc28.x86_64
+}
+blscfg
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_add_file_string(test, test->ctx->device,
+ "/loader/entries/6c063c8e48904f2684abde8eea303f41-4.15.2-300.fc28.x86_64.conf",
+ "title Fedora (4.15.2-300.fc28.x86_64) 28 (Twenty Eight)\n"
+ "linux /vmlinuz-4.15.2-300.fc28.x86_64\n"
+ "initrd /initramfs-4.15.2-300.fc28.x86_64.img\n"
+ "options root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root\n\n");
+
+ test_add_file_string(test, test->ctx->device,
+ "/loader/entries/6c063c8e48904f2684abde8eea303f41-4.14.18-300.fc28.x86_64.conf",
+ "title Fedora (4.14.18-300.fc28.x86_64) 28 (Twenty Eight)\n"
+ "linux /vmlinuz-4.14.18-300.fc28.x86_64\n"
+ "initrd /initramfs-4.14.18-300.fc28.x86_64.img\n"
+ "options root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root\n");
+
+ test_read_conf_embedded(test, "/boot/grub2/grub.cfg");
+
+ test_run_parser(test, "grub2");
+
+ ctx = test->ctx;
+
+ opt = get_boot_option(ctx, 2);
+
+ check_name(opt, "Fedora (4.15.2-300.fc28.x86_64) 28 (Twenty Eight)");
+
+ check_is_default(opt);
+}
OpenPOWER on IntegriCloud