diff options
author | Javier Martinez Canillas <javierm@redhat.com> | 2018-03-22 09:41:23 +0100 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-03-23 11:39:35 +1100 |
commit | 91ce1a8f8863d8f740188236f138421d17292d6c (patch) | |
tree | f39fa6f339e8c8f3e3ec20052acc33b806aa040b /test/parser/test-grub2-blscfg-opts-config.c | |
parent | 3dfa4123bdf987aaa0e4bfd73d436c6bab0184ce (diff) | |
download | talos-petitboot-91ce1a8f8863d8f740188236f138421d17292d6c.tar.gz talos-petitboot-91ce1a8f8863d8f740188236f138421d17292d6c.zip |
discover/grub: Add blscfg command support to parse BootLoaderSpec files
The BootLoaderSpec (BLS) defines a file format for boot configurations,
so bootloaders can parse these files and create their boot menu entries
by using the information provided by them [0].
This allow to configure the boot items as drop-in files in a directory
instead of having to parse and modify a bootloader configuration file.
The GRUB 2 bootloader provides a blscfg command that parses these files
and creates menu entries using this information. Add support for it.
[0]: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'test/parser/test-grub2-blscfg-opts-config.c')
-rw-r--r-- | test/parser/test-grub2-blscfg-opts-config.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/parser/test-grub2-blscfg-opts-config.c b/test/parser/test-grub2-blscfg-opts-config.c new file mode 100644 index 0000000..856aae2 --- /dev/null +++ b/test/parser/test-grub2-blscfg-opts-config.c @@ -0,0 +1,29 @@ +#include "parser-test.h" + +#if 0 /* PARSER_EMBEDDED_CONFIG */ +set kernelopts=root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root +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-302.fc28.x86_64.conf", + "title Fedora (4.15.2-302.fc28.x86_64) 28 (Twenty Eight)\n" + "linux /vmlinuz-4.15.2-302.fc28.x86_64\n" + "initrd /initramfs-4.15.2-302.fc28.x86_64.img\n" + "options $kernelopts\n"); + + test_read_conf_embedded(test, "/boot/grub2/grub.cfg"); + + test_run_parser(test, "grub2"); + + ctx = test->ctx; + + opt = get_boot_option(ctx, 0); + + check_args(opt, "root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root"); +} |