diff options
author | Javier Martinez Canillas <javierm@redhat.com> | 2019-06-20 18:09:56 +0200 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2019-06-21 13:42:20 +1000 |
commit | 7edc34c4ee8dc0913ea1a4ec64d3fbe6d64afc6d (patch) | |
tree | ab7abfb620d9606c09a9c10901e50239470cea8b /test/parser | |
parent | 53e0f3ef35ac694220dce135f01a4f736cbd1c19 (diff) | |
download | talos-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.am | 2 | ||||
-rw-r--r-- | test/parser/test-grub2-default-id-space.c | 34 | ||||
-rw-r--r-- | test/parser/test-grub2-default-id.c | 34 |
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); +} |