test/parser: Add new test cases to pxe parser
authorNeelesh Gupta <neelegup@linux.vnet.ibm.com>
Mon, 28 Oct 2013 07:16:12 +0000 (12:46 +0530)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 6 Nov 2013 08:34:26 +0000 (16:34 +0800)
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>
test/parser/Makefile.am
test/parser/test-pxe-ip-without-conf.c [new file with mode: 0644]
test/parser/test-pxe-mac-without-conf.c [new file with mode: 0644]
test/parser/test-pxe-non-url-conf.c [new file with mode: 0644]

index 32f204d31fa7337f775ca3e8ead1f69c8e7b049c..c02fd91ca7984f90db74df2778e042ca874cd3b0 100644 (file)
@@ -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 (file)
index 0000000..dd4cedd
--- /dev/null
@@ -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 (file)
index 0000000..72ef94b
--- /dev/null
@@ -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 (file)
index 0000000..e8bb849
--- /dev/null
@@ -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");
+}