Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Geert Uytterhoeven and committed by
Rob Herring
eb38b952 ee32072f

+26 -1
+2 -1
drivers/of/unittest-data/Makefile
··· 33 33 overlay_gpio_03.dtbo.o \ 34 34 overlay_gpio_04a.dtbo.o \ 35 35 overlay_gpio_04b.dtbo.o \ 36 - overlay_pci_node.dtbo.o 36 + overlay_pci_node.dtbo.o \ 37 + overlay_bad_unresolved.dtbo.o 37 38 38 39 # enable creation of __symbols__ node 39 40 DTC_FLAGS_overlay += -@
+7
drivers/of/unittest-data/overlay_bad_unresolved.dtso
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /dts-v1/; 3 + /plugin/; 4 + 5 + &this_label_does_not_exist { 6 + status = "ok"; 7 + };
+17
drivers/of/unittest.c
··· 3336 3336 OVERLAY_INFO_EXTERN(overlay_bad_add_dup_prop); 3337 3337 OVERLAY_INFO_EXTERN(overlay_bad_phandle); 3338 3338 OVERLAY_INFO_EXTERN(overlay_bad_symbol); 3339 + OVERLAY_INFO_EXTERN(overlay_bad_unresolved); 3339 3340 3340 3341 /* entries found by name */ 3341 3342 static struct overlay_info overlays[] = { ··· 3373 3372 OVERLAY_INFO(overlay_bad_add_dup_prop, -EINVAL, -ENODEV), 3374 3373 OVERLAY_INFO(overlay_bad_phandle, -EINVAL, 0), 3375 3374 OVERLAY_INFO(overlay_bad_symbol, -EINVAL, -ENODEV), 3375 + OVERLAY_INFO(overlay_bad_unresolved, -EINVAL, 0), 3376 3376 /* end marker */ 3377 3377 { } 3378 3378 }; ··· 3777 3775 "OF: Error reverting changeset (-19)"); 3778 3776 EXPECT_END(KERN_ERR, 3779 3777 "OF: changeset: apply failed: REMOVE_PROPERTY /testcase-data-2/substation@100/hvac-medium-2:name"); 3778 + 3779 + /* --- overlay_bad_unresolved --- */ 3780 + 3781 + EXPECT_BEGIN(KERN_ERR, 3782 + "OF: resolver: node label 'this_label_does_not_exist' not found in live devicetree symbols table"); 3783 + EXPECT_BEGIN(KERN_ERR, 3784 + "OF: resolver: overlay phandle fixup failed: -22"); 3785 + 3786 + unittest(overlay_data_apply("overlay_bad_unresolved", NULL), 3787 + "Adding overlay 'overlay_bad_unresolved' failed\n"); 3788 + 3789 + EXPECT_END(KERN_ERR, 3790 + "OF: resolver: overlay phandle fixup failed: -22"); 3791 + EXPECT_END(KERN_ERR, 3792 + "OF: resolver: node label 'this_label_does_not_exist' not found in live devicetree symbols table"); 3780 3793 3781 3794 return; 3782 3795