summaryrefslogtreecommitdiffstats
path: root/test/parser
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-07-09 16:14:41 +0800
committerGeoff Levand <geoff@infradead.org>2013-07-23 09:44:45 -0700
commitcaddee4b6224b0e050d12cb77d2f42394043885f (patch)
tree3cfb5f69d2c805202464eb49b4a50303892a89e4 /test/parser
parent9ecdab4194422f1f72486745a9d6db79badd36ae (diff)
downloadtalos-petitboot-caddee4b6224b0e050d12cb77d2f42394043885f.tar.gz
talos-petitboot-caddee4b6224b0e050d12cb77d2f42394043885f.zip
test/parser: Add pxe tests
Add a couple of tests to verify the pxe parser, particularly the different styles of initrd handling. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test/parser')
-rw-r--r--test/parser/Makefile.am5
-rw-r--r--test/parser/test-pxe-initrd-in-append.c34
-rw-r--r--test/parser/test-pxe-single.c34
3 files changed, 72 insertions, 1 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index 5dba679..c2d84a3 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -34,7 +34,9 @@ TESTS = \
test-kboot-single \
test-yaboot-single \
test-yaboot-external \
- test-yaboot-rh8-ppc64
+ test-yaboot-rh8-ppc64 \
+ test-pxe-single \
+ test-pxe-initrd-in-append
$(TESTS): %: %.embedded-config.o
$(TESTS): LDADD += $@.embedded-config.o
@@ -49,6 +51,7 @@ parser_objs = \
$(top_srcdir)/discover/yaboot-parser.c \
$(top_srcdir)/discover/kboot-parser.c \
$(top_srcdir)/discover/grub2-parser.c \
+ $(top_srcdir)/discover/pxe-parser.c \
$(top_srcdir)/discover/resource.c \
$(top_srcdir)/discover/paths.c \
$(top_srcdir)/discover/device-handler.c \
diff --git a/test/parser/test-pxe-initrd-in-append.c b/test/parser/test-pxe-initrd-in-append.c
new file mode 100644
index 0000000..3c1c217
--- /dev/null
+++ b/test/parser/test-pxe-initrd-in-append.c
@@ -0,0 +1,34 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+default linux
+
+label linux
+kernel ./pxe/de-ad-de-ad-be-ef.vmlinuz
+append command line initrd=./pxe/de-ad-de-ad-be-ef.initrd
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_read_conf_embedded(test);
+ test_set_conf_source(test, "tftp://host/dir/conf.txt");
+ test_run_parser(test, "pxe");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 1);
+ opt = get_boot_option(ctx, 0);
+
+ check_name(opt, "linux");
+ check_args(opt, "command line "
+ "initrd=./pxe/de-ad-de-ad-be-ef.initrd");
+
+ check_resolved_url_resource(opt->boot_image,
+ "tftp://host/dir/./pxe/de-ad-de-ad-be-ef.vmlinuz");
+ check_resolved_url_resource(opt->initrd,
+ "tftp://host/dir/./pxe/de-ad-de-ad-be-ef.initrd");
+}
diff --git a/test/parser/test-pxe-single.c b/test/parser/test-pxe-single.c
new file mode 100644
index 0000000..65e3051
--- /dev/null
+++ b/test/parser/test-pxe-single.c
@@ -0,0 +1,34 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+default linux
+
+label linux
+kernel ./pxe/de-ad-de-ad-be-ef.vmlinuz
+append command line
+initrd=./pxe/de-ad-de-ad-be-ef.initrd
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ struct discover_context *ctx;
+
+ test_read_conf_embedded(test);
+ test_set_conf_source(test, "tftp://host/dir/conf.txt");
+ test_run_parser(test, "pxe");
+
+ ctx = test->ctx;
+
+ check_boot_option_count(ctx, 1);
+ opt = get_boot_option(ctx, 0);
+
+ check_name(opt, "linux");
+ check_args(opt, "command line");
+
+ check_resolved_url_resource(opt->boot_image,
+ "tftp://host/dir/./pxe/de-ad-de-ad-be-ef.vmlinuz");
+ check_resolved_url_resource(opt->initrd,
+ "tftp://host/dir/./pxe/de-ad-de-ad-be-ef.initrd");
+}
OpenPOWER on IntegriCloud