From 6b0d0a38421c6ff044d005042d7309cbf36aface Mon Sep 17 00:00:00 2001 From: Neelesh Gupta Date: Mon, 28 Oct 2013 12:46:12 +0530 Subject: [PATCH] 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 --- test/parser/Makefile.am | 5 +++- test/parser/test-pxe-ip-without-conf.c | 40 +++++++++++++++++++++++++ test/parser/test-pxe-mac-without-conf.c | 39 ++++++++++++++++++++++++ test/parser/test-pxe-non-url-conf.c | 38 +++++++++++++++++++++++ 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 test/parser/test-pxe-ip-without-conf.c create mode 100644 test/parser/test-pxe-mac-without-conf.c create mode 100644 test/parser/test-pxe-non-url-conf.c 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"); +} -- 2.39.2