From: Neelesh Gupta Date: Mon, 28 Oct 2013 07:16:12 +0000 (+0530) Subject: test/parser: Add new test cases to pxe parser X-Git-Tag: v1.0.0~365 X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=6b0d0a38421c6ff044d005042d7309cbf36aface 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 Signed-off-by: Jeremy Kerr --- 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"); +}