summaryrefslogtreecommitdiffstats
path: root/test/parser/utils.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-09-19 17:16:53 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-09-19 21:36:33 +0800
commitf611bde3f182e9a4befb48a0160d1831708aca67 (patch)
treecacf467246c85c491bf91b3fe46c448c5fdbab94 /test/parser/utils.c
parent4926cde5c97d09794ec33cca1321bb05a8d43304 (diff)
downloadtalos-petitboot-f611bde3f182e9a4befb48a0160d1831708aca67.tar.gz
talos-petitboot-f611bde3f182e9a4befb48a0160d1831708aca67.zip
discover: Remove unnecessary event passing
Currently, we pass "events" between the udev, user-event and device-handler layers. These events all get sent through device_handler_event, then de-multiplexed to an appropriate handler, depending on their source. Instead, just export relevant device_handler functions, and have the (old) event sources call these functions directly. This also means we can include a lot more of the device hander code in the parser tests. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test/parser/utils.c')
-rw-r--r--test/parser/utils.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/test/parser/utils.c b/test/parser/utils.c
index 407ac80..de1dc13 100644
--- a/test/parser/utils.c
+++ b/test/parser/utils.c
@@ -41,25 +41,22 @@ static void __attribute__((destructor)) __cleanup_parsers(void)
}
static struct discover_device *test_create_device_simple(
- struct discover_context *ctx)
+ struct parser_test *test)
{
static int dev_idx;
char name[10];
sprintf(name, "__test%d", dev_idx++);
- return test_create_device(ctx, name);
+ return test_create_device(test, name);
}
-struct discover_device *test_create_device(struct discover_context *ctx,
+struct discover_device *test_create_device(struct parser_test *test,
const char *name)
{
struct discover_device *dev;
- dev = talloc_zero(ctx, struct discover_device);
- dev->device = talloc_zero(dev, struct device);
-
- list_init(&dev->boot_options);
+ dev = discover_device_create(test->handler, name);
dev->device->id = talloc_strdup(dev, name);
dev->device_path = talloc_asprintf(dev, "/dev/%s", name);
@@ -76,16 +73,20 @@ static struct discover_context *test_create_context(struct parser_test *test)
assert(ctx);
list_init(&ctx->boot_options);
- ctx->device = test_create_device_simple(ctx);
+ ctx->device = test_create_device_simple(test);
+ device_handler_add_device(test->handler, ctx->device);
return ctx;
}
+extern struct config *test_config_init(struct parser_test *test);
+
struct parser_test *test_init(void)
{
struct parser_test *test;
test = talloc_zero(NULL, struct parser_test);
+ test->config = test_config_init(test);
test->handler = device_handler_init(NULL, NULL, 0);
test->ctx = test_create_context(test);
@@ -175,9 +176,6 @@ void boot_option_resolve(struct device_handler *handler,
resource_resolve(handler, opt->source, opt->icon);
}
-extern void device_handler_add_device(struct device_handler *handler,
- struct discover_device *dev);
-
void test_hotplug_device(struct parser_test *test, struct discover_device *dev)
{
struct discover_boot_option *opt;
OpenPOWER on IntegriCloud