of: overlay: unittest: Add test for unresolved symbol
Add a test to exercise the error paths when trying to apply an overlay with an unresolved symbol and cleaning up the resulting partial state. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/580394587976975770c84411896fce9fbbcf25fa.1690533838.git.geert+renesas@glider.be Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
ee32072fd1
commit
eb38b9529a
@ -33,7 +33,8 @@ obj-$(CONFIG_OF_OVERLAY) += overlay.dtbo.o \
|
||||
overlay_gpio_03.dtbo.o \
|
||||
overlay_gpio_04a.dtbo.o \
|
||||
overlay_gpio_04b.dtbo.o \
|
||||
overlay_pci_node.dtbo.o
|
||||
overlay_pci_node.dtbo.o \
|
||||
overlay_bad_unresolved.dtbo.o
|
||||
|
||||
# enable creation of __symbols__ node
|
||||
DTC_FLAGS_overlay += -@
|
||||
|
7
drivers/of/unittest-data/overlay_bad_unresolved.dtso
Normal file
7
drivers/of/unittest-data/overlay_bad_unresolved.dtso
Normal file
@ -0,0 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
&this_label_does_not_exist {
|
||||
status = "ok";
|
||||
};
|
@ -3336,6 +3336,7 @@ OVERLAY_INFO_EXTERN(overlay_bad_add_dup_node);
|
||||
OVERLAY_INFO_EXTERN(overlay_bad_add_dup_prop);
|
||||
OVERLAY_INFO_EXTERN(overlay_bad_phandle);
|
||||
OVERLAY_INFO_EXTERN(overlay_bad_symbol);
|
||||
OVERLAY_INFO_EXTERN(overlay_bad_unresolved);
|
||||
|
||||
/* entries found by name */
|
||||
static struct overlay_info overlays[] = {
|
||||
@ -3372,6 +3373,7 @@ static struct overlay_info overlays[] = {
|
||||
OVERLAY_INFO(overlay_bad_add_dup_prop, -EINVAL, -ENODEV),
|
||||
OVERLAY_INFO(overlay_bad_phandle, -EINVAL, 0),
|
||||
OVERLAY_INFO(overlay_bad_symbol, -EINVAL, -ENODEV),
|
||||
OVERLAY_INFO(overlay_bad_unresolved, -EINVAL, 0),
|
||||
/* end marker */
|
||||
{ }
|
||||
};
|
||||
@ -3776,6 +3778,21 @@ static __init void of_unittest_overlay_high_level(void)
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: changeset: apply failed: REMOVE_PROPERTY /testcase-data-2/substation@100/hvac-medium-2:name");
|
||||
|
||||
/* --- overlay_bad_unresolved --- */
|
||||
|
||||
EXPECT_BEGIN(KERN_ERR,
|
||||
"OF: resolver: node label 'this_label_does_not_exist' not found in live devicetree symbols table");
|
||||
EXPECT_BEGIN(KERN_ERR,
|
||||
"OF: resolver: overlay phandle fixup failed: -22");
|
||||
|
||||
unittest(overlay_data_apply("overlay_bad_unresolved", NULL),
|
||||
"Adding overlay 'overlay_bad_unresolved' failed\n");
|
||||
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: resolver: overlay phandle fixup failed: -22");
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: resolver: node label 'this_label_does_not_exist' not found in live devicetree symbols table");
|
||||
|
||||
return;
|
||||
|
||||
err_unlock:
|
||||
|
Loading…
Reference in New Issue
Block a user