From: Geoff Levand Date: Wed, 25 Mar 2009 12:35:59 +0000 (+0000) Subject: Fixup parser test program X-Git-Tag: v1.0.0~888 X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=fe7bfb4f2fa5b582be94409473130674b7d8687f Fixup parser test program Fixup the parser test program and helper script to work with the new multi-ui design. The expected-output files have not been updated. Signed-off-by: Geoff Levand Signed-off-by: Jeremy Kerr --- diff --git a/rules.mk b/rules.mk index 040f269..23b23d7 100644 --- a/rules.mk +++ b/rules.mk @@ -37,11 +37,10 @@ talloc_objs = lib/talloc/talloc.o waiter_objs = lib/waiter/waiter.o # daemon objs -parser_objs = discover/parser.o discover/parser-utils.o \ - discover/parser-conf.o\ +parser_objs = discover/parser.o discover/parser-conf.o discover/paths.o \ $(foreach p, $(parsers), discover/$(p)-parser.o) -discover_objs = discover/udev.o discover/discover-server.o \ - discover/device-handler.o discover/paths.o +discover_objs = discover/udev.o discover/discover-server.o \ + discover/device-handler.o discover/paths.o discover/parser-utils.o # client objs ui_common_objs = ui/common/discover-client.o @@ -95,7 +94,7 @@ $(pb_discover): $(pb_discover_objs) $(LINK.o) -o $@ $^ # parser-test -parser_test_objs = $(parser_objs) test/parser-test.o +parser_test_objs = $(lib_objs) $(parser_objs) test/parser-test.o $(parser_test_objs): $(makefiles) $(parser_test): $(parser_test_objs) diff --git a/test/parser-test.c b/test/parser-test.c index 8c94d3f..c88fc6c 100644 --- a/test/parser-test.c +++ b/test/parser-test.c @@ -1,85 +1,75 @@ #define _GNU_SOURCE -#include -#include #include -#include +#include +#include #include +#include -#include "parser.h" -#include "paths.h" - -void pb_log(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); -} +#include +#include "pb-protocol/pb-protocol.h" +#include -int mount_device(const char *dev_path) -{ - printf("[mount] %s\n", dev_path); - return 0; -} +#include "discover/device-handler.h" +#include "discover/parser.h" +#include "discover/parser-utils.h" +#include "discover/paths.h" -static int device_idx; -static int option_idx; +static FILE *testf; -int add_device(const struct device *dev) +void device_add_boot_option(struct device *device, + struct boot_option *boot_option) { - printf("[dev %2d] id: %s\n", device_idx, dev->id); - printf("[dev %2d] name: %s\n", device_idx, dev->name); - printf("[dev %2d] description: %s\n", device_idx, dev->description); - printf("[dev %2d] boot_image: %s\n", device_idx, dev->icon_file); - - device_idx++; - option_idx = 0; - return 0; + fprintf(testf, "%s: %s\n", __func__, device->id); + fprintf(testf, " id '%s'\n", boot_option->id); + fprintf(testf, " name '%s'\n", boot_option->name); + fprintf(testf, " descr '%s'\n", boot_option->description); + fprintf(testf, " icon '%s'\n", boot_option->icon_file); + fprintf(testf, " image '%s'\n", boot_option->boot_image_file); + fprintf(testf, " initrd '%s'\n", boot_option->initrd_file); + fprintf(testf, " args '%s'\n", boot_option->boot_args); + fflush(testf); } - -int add_boot_option(const struct boot_option *opt) +const char *generic_icon_file( + enum generic_icon_type __attribute__((unused)) type) { - if (!device_idx) { - fprintf(stderr, "Option (%s) added before device\n", - opt->name); - exit(EXIT_FAILURE); - } - - printf("[opt %2d] name: %s\n", option_idx, opt->name); - printf("[opt %2d] description: %s\n", option_idx, opt->description); - printf("[opt %2d] boot_image: %s\n", option_idx, opt->boot_image_file); - printf("[opt %2d] initrd: %s\n", option_idx, opt->initrd_file); - printf("[opt %2d] boot_args: %s\n", option_idx, opt->boot_args); - - option_idx++; - - return 0; + return "tester.png"; } -enum generic_icon_type guess_device_type(void) +enum generic_icon_type guess_device_type( + struct discover_context __attribute__((unused)) *ctx) { return ICON_TYPE_UNKNOWN; } int main(int argc, char **argv) { - char *mountpoint, *dev; + struct discover_context *ctx; + int rc; if (argc != 3) { fprintf(stderr, "usage: %s \n", argv[0]); return EXIT_FAILURE; } - mountpoint = argv[1]; - dev = argv[2]; + /* Default to test on stdout, pb_log on stderr. */ + + testf = stdout; + + pb_log_set_stream(stderr); + pb_log_always_flush(1); + pb_log("--- parser-test ---\n"); + + ctx = talloc_zero(NULL, struct discover_context); - set_mount_base(mountpoint); + ctx->device_path = talloc_asprintf(ctx, "%s/%s", argv[1], argv[2]); + ctx->device = talloc_zero(ctx, struct device); + ctx->device->id = talloc_strdup(ctx->device, argv[2]); - iterate_parsers(dev, mountpoint); + rc = iterate_parsers(ctx); + pb_log("--- end ---\n"); return EXIT_SUCCESS; } diff --git a/test/parser-test.sh b/test/parser-test.sh index 140601e..af54395 100755 --- a/test/parser-test.sh +++ b/test/parser-test.sh @@ -1,26 +1,25 @@ #!/bin/bash -testdir=devices/parser-tests +testdir=parser default_rootdev=ps3da1 +mnt=${PREFIX}/var/petitboot/mnt -function test_dir() -{ - dir="$1" +#set -ex + +tests=$(ls ${mnt}/${testdir}/) + +for test in $tests +do rootdev=$default_rootdev - if [ -e "$dir/rootdev" ] - then - rootdev=$(cat "$dir/rootdev") + + if [ -e "${mnt}/${testdir}/$test/rootdev" ]; then + rootdev=$(cat "${mnt}/${testdir}/$test/rootdev") fi - ./parser-test "$dir" /dev/$rootdev 2>/dev/null | - diff -u "$dir/expected-output" - -} -set -ex + ./test/parser-test "${testdir}/$test" $rootdev -for test in $testdir/* -do - echo $test - test_dir "$test" +# ./test/parser-test "${testdir}/$test" $rootdev 2>/dev/null | +# diff -u "${mnt}/${testdir}/$test/expected-output" - done echo "All tests passed"