/** * of_root_kunit_skip() - Skip test if the root node isn't populated * @test: test to skip if the root node isn't populated
*/ void of_root_kunit_skip(struct kunit *test)
{ if (IS_ENABLED(CONFIG_ARM64) && IS_ENABLED(CONFIG_ACPI) && !of_root)
kunit_skip(test, "arm64+acpi doesn't populate a root node");
}
EXPORT_SYMBOL_GPL(of_root_kunit_skip);
/** * of_overlay_fdt_apply_kunit() - Test managed of_overlay_fdt_apply() * @test: test context * @overlay_fdt: device tree overlay to apply * @overlay_fdt_size: size in bytes of @overlay_fdt * @ovcs_id: identifier of overlay, used to remove the overlay * * Just like of_overlay_fdt_apply(), except the overlay is managed by the test * case and is automatically removed with of_overlay_remove() after the test * case concludes. * * Return: 0 on success, negative errno on failure
*/ int of_overlay_fdt_apply_kunit(struct kunit *test, void *overlay_fdt,
u32 overlay_fdt_size, int *ovcs_id)
{ int ret; int *copy_id;
of_root_kunit_skip(test);
copy_id = kunit_kmalloc(test, sizeof(*copy_id), GFP_KERNEL); if (!copy_id) return -ENOMEM;
ret = of_overlay_fdt_apply(overlay_fdt, overlay_fdt_size,
ovcs_id, NULL); if (ret) return ret;
/** * of_node_put_kunit() - Test managed of_node_put() * @test: test context * @node: node to pass to `of_node_put()` * * Just like of_node_put(), except the node is managed by the test case and is * automatically put with of_node_put() after the test case concludes.
*/ void of_node_put_kunit(struct kunit *test, struct device_node *node)
{ if (kunit_add_action(test, of_node_put_wrapper, node)) {
KUNIT_FAIL(test, "Can't allocate a kunit resource to put of_node\n");
}
}
EXPORT_SYMBOL_GPL(of_node_put_kunit);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.