From c41ffccdaf16b0820904c5dd2e5d7612bfbefc65 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 17 Apr 2018 19:09:00 +0200 Subject: 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 Signed-off-by: Samuel Mendoza-Jonas --- test/parser/Makefile.am | 1 + test/parser/test-grub2-blscfg-default-index.c | 45 +++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 test/parser/test-grub2-blscfg-default-index.c (limited to 'test') 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); +} -- cgit v1.2.1