summaryrefslogtreecommitdiffstats
path: root/test/parser/parser-test.c
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2012-03-18 22:19:49 -0700
committerGeoff Levand <geoff@infradead.org>2012-03-18 22:19:49 -0700
commit8bd85461621fb0ff18059305a6c1aecdbc18016c (patch)
treeef74fc1a811fc1c14797b0a2ab0735d37475e0dd /test/parser/parser-test.c
parentd40cc2cc3f7c78a766c7ab26aa0cb73ae17534c0 (diff)
downloadtalos-petitboot-8bd85461621fb0ff18059305a6c1aecdbc18016c.tar.gz
talos-petitboot-8bd85461621fb0ff18059305a6c1aecdbc18016c.zip
Parser test cleanup
Major cleanup of parser tests. * Change test data directory layout to ease test automation. * Remove some unneeded files. * Re-write test wraper script, rename to run-parser-tests. * Rework for autotools. Signed-off-by: Geoff Levand <geoff@infradead.org>
Diffstat (limited to 'test/parser/parser-test.c')
-rw-r--r--test/parser/parser-test.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/parser/parser-test.c b/test/parser/parser-test.c
new file mode 100644
index 0000000..90b3e3b
--- /dev/null
+++ b/test/parser/parser-test.c
@@ -0,0 +1,74 @@
+#define _GNU_SOURCE
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <log/log.h>
+#include "pb-protocol/pb-protocol.h"
+#include <talloc/talloc.h>
+
+#include "discover/device-handler.h"
+#include "discover/parser.h"
+#include "discover/parser-utils.h"
+#include "discover/paths.h"
+
+static FILE *testf;
+
+void device_add_boot_option(struct device *device,
+ struct boot_option *boot_option)
+{
+ 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);
+}
+
+const char *generic_icon_file(
+ enum generic_icon_type __attribute__((unused)) type)
+{
+ return "tester.png";
+}
+
+enum generic_icon_type guess_device_type(
+ struct discover_context __attribute__((unused)) *ctx)
+{
+ return ICON_TYPE_UNKNOWN;
+}
+
+int main(int argc, char **argv)
+{
+ struct discover_context *ctx;
+
+ if (argc != 3) {
+ fprintf(stderr, "usage: %s <basedir> <devname>\n", argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ /* 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);
+
+ 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(ctx);
+
+ pb_log("--- end ---\n");
+
+ return EXIT_SUCCESS;
+}
OpenPOWER on IntegriCloud