summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNeelesh Gupta <neelegup@linux.vnet.ibm.com>2013-10-28 12:46:12 +0530
committerJeremy Kerr <jk@ozlabs.org>2013-11-06 16:34:26 +0800
commit6b0d0a38421c6ff044d005042d7309cbf36aface (patch)
treec9977eb272b3407f3954178770470ed5b16df3e8 /test
parentcc28b17bb59411e6031a8273b784e9d1d3a9490d (diff)
downloadtalos-petitboot-6b0d0a38421c6ff044d005042d7309cbf36aface.tar.gz
talos-petitboot-6b0d0a38421c6ff044d005042d7309cbf36aface.zip
test/parser: Add new test cases to pxe parser
Adding new cases to the pxe parser code of having conffile file without complete URL and determining conffile names using mac and ip addresses passed from the udhcpc. Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test')
-rw-r--r--test/parser/Makefile.am5
-rw-r--r--test/parser/test-pxe-ip-without-conf.c40
-rw-r--r--test/parser/test-pxe-mac-without-conf.c39
-rw-r--r--test/parser/test-pxe-non-url-conf.c38
4 files changed, 121 insertions, 1 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index 32f204d..c02fd91 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -51,7 +51,10 @@ TESTS = \
test-yaboot-rh8-ppc64 \
test-pxe-empty \
test-pxe-single \
- test-pxe-initrd-in-append
+ test-pxe-initrd-in-append \
+ test-pxe-mac-without-conf \
+ test-pxe-ip-without-conf \
+ test-pxe-non-url-conf
$(TESTS): %: %.embedded-config.o
$(TESTS): LDADD += $@.embedded-config.o
diff --git a/test/parser/test-pxe-ip-without-conf.c b/test/parser/test-pxe-ip-without-conf.c
new file mode 100644
index 0000000..dd4cedd
--- /dev/null
+++ b/test/parser/test-pxe-ip-without-conf.c
@@ -0,0 +1,40 @@
+
+#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, "C0A8");
+
+ test_set_event_source(test);
+ test_set_event_param(test->ctx->event, "bootfile", "dir/pxe");
+ test_set_event_param(test->ctx->event, "tftp", "host");
+ test_set_event_param(test->ctx->event, "mac", "12:34:56:78:9a:bc");
+ test_set_event_param(test->ctx->event, "ip", "192.168.0.1");
+
+ 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");
+}
diff --git a/test/parser/test-pxe-mac-without-conf.c b/test/parser/test-pxe-mac-without-conf.c
new file mode 100644
index 0000000..72ef94b
--- /dev/null
+++ b/test/parser/test-pxe-mac-without-conf.c
@@ -0,0 +1,39 @@
+
+#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, "01-12-34-56-78-9A-BC");
+
+ test_set_event_source(test);
+ test_set_event_param(test->ctx->event, "bootfile", "dir/pxe");
+ test_set_event_param(test->ctx->event, "tftp", "host");
+ test_set_event_param(test->ctx->event, "mac", "12:34:56:78:9a:bc");
+
+ 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");
+}
diff --git a/test/parser/test-pxe-non-url-conf.c b/test/parser/test-pxe-non-url-conf.c
new file mode 100644
index 0000000..e8bb849
--- /dev/null
+++ b/test/parser/test-pxe-non-url-conf.c
@@ -0,0 +1,38 @@
+
+#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, "conf.txt");
+
+ test_set_event_source(test);
+ test_set_event_param(test->ctx->event, "siaddr", "host");
+ test_set_event_param(test->ctx->event, "conffile", "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/./pxe/de-ad-de-ad-be-ef.vmlinuz");
+ check_resolved_url_resource(opt->initrd,
+ "tftp://host/./pxe/de-ad-de-ad-be-ef.initrd");
+}
OpenPOWER on IntegriCloud