diff options
author | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-10-30 15:26:04 +1100 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-11-16 13:55:13 +1100 |
commit | 646d77d8156ad72da1c24f734a029a525ba4bed9 (patch) | |
tree | 8eaa5db080f5c2b733b506fd82eec773ac2afdb3 /test/parser/test-native-short.c | |
parent | 638f16c7683db165154bbe53772c4b864f9dc90d (diff) | |
download | talos-petitboot-646d77d8156ad72da1c24f734a029a525ba4bed9.tar.gz talos-petitboot-646d77d8156ad72da1c24f734a029a525ba4bed9.zip |
discover: Reimplement native-parser as a Bison parser
Occasionally you look at some code and realise that a) this never gets
built, and b) even if it did it would never compile. Today's example is
native-parser.c which we must have just assumed worked for quite a
while.
The native parser has bitrotted entirely and needs to be brought up to
date. While we're here, lets take the chance to implement a proper
grammar for it. This helps us reason more effectively about the parser,
lets us extend it easily in the future, and.. I wanted to write a Bison
parser too.
This implements most of the old functionality, but drops off some
smaller details like settings icons which needs some separate attention
to bring up to date.
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'test/parser/test-native-short.c')
-rw-r--r-- | test/parser/test-native-short.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/parser/test-native-short.c b/test/parser/test-native-short.c new file mode 100644 index 0000000..178d080 --- /dev/null +++ b/test/parser/test-native-short.c @@ -0,0 +1,24 @@ +#include "parser-test.h" + +void run_test(struct parser_test *test) +{ + struct discover_boot_option *opt; + struct discover_context *ctx; + + test_read_conf_file(test, "native-short.conf", "/boot/petitboot.conf"); + + test_run_parser(test, "native"); + + ctx = test->ctx; + + check_boot_option_count(ctx, 1); + + opt = get_boot_option(ctx, 0); + + check_name(opt, "Ubuntu"); + check_resolved_local_resource(opt->boot_image, ctx->device, + "/boot/vmlinux-4.15.0-22-generic"); + check_args(opt, "root=UUID=09d1034f-3cff-413a-af22-68be1fa5e3d8 ro"); + check_resolved_local_resource(opt->initrd, ctx->device, + "/boot/initrd.img-4.15.0-22-generic"); +} |