diff options
author | Geoff Levand <geoffrey.levand@am.sony.com> | 2009-03-25 12:35:59 +0000 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2009-03-30 20:20:16 +1100 |
commit | fe7bfb4f2fa5b582be94409473130674b7d8687f (patch) | |
tree | 847cd456693a5253b5df7502fc84473e7232819a /test | |
parent | 8a939f0de36db6316e0872b7263408b2dc9b83ea (diff) | |
download | talos-petitboot-fe7bfb4f2fa5b582be94409473130674b7d8687f.tar.gz talos-petitboot-fe7bfb4f2fa5b582be94409473130674b7d8687f.zip |
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 <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/parser-test.c | 96 | ||||
-rwxr-xr-x | test/parser-test.sh | 29 |
2 files changed, 57 insertions, 68 deletions
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 <stdlib.h> -#include <stdio.h> #include <stdarg.h> -#include <unistd.h> +#include <stdio.h> +#include <stdlib.h> #include <string.h> +#include <unistd.h> -#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 <log/log.h> +#include "pb-protocol/pb-protocol.h" +#include <talloc/talloc.h> -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 <basedir> <devname>\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" |