summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGeoff Levand <geoffrey.levand@am.sony.com>2009-03-25 12:35:59 +0000
committerJeremy Kerr <jk@ozlabs.org>2009-03-30 20:20:16 +1100
commitfe7bfb4f2fa5b582be94409473130674b7d8687f (patch)
tree847cd456693a5253b5df7502fc84473e7232819a /test
parent8a939f0de36db6316e0872b7263408b2dc9b83ea (diff)
downloadtalos-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.c96
-rwxr-xr-xtest/parser-test.sh29
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"
OpenPOWER on IntegriCloud