X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=test%2Fparser-test.c;h=90b3e3b8e8693a9960b3ef5ed6d13854a677f98f;hp=8c94d3f899d4c2f43ea4945ae006ccd619a05065;hb=60384121c27eb92c25955a06e8dea088290f938b;hpb=32e6a41f33e5576716b351bd473a27939fe94fa1 diff --git a/test/parser-test.c b/test/parser-test.c index 8c94d3f..90b3e3b 100644 --- a/test/parser-test.c +++ b/test/parser-test.c @@ -1,85 +1,74 @@ #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; 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); + iterate_parsers(ctx); + pb_log("--- end ---\n"); return EXIT_SUCCESS; }