aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/of/unittest-data/Makefile1
-rw-r--r--drivers/of/unittest-data/overlay_bad_add_dup_node.dts28
-rw-r--r--drivers/of/unittest.c5
3 files changed, 34 insertions, 0 deletions
diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile
index 013d85e694c6..166dbdbfd1c5 100644
--- a/drivers/of/unittest-data/Makefile
+++ b/drivers/of/unittest-data/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \
17 overlay_12.dtb.o \ 17 overlay_12.dtb.o \
18 overlay_13.dtb.o \ 18 overlay_13.dtb.o \
19 overlay_15.dtb.o \ 19 overlay_15.dtb.o \
20 overlay_bad_add_dup_node.dtb.o \
20 overlay_bad_phandle.dtb.o \ 21 overlay_bad_phandle.dtb.o \
21 overlay_bad_symbol.dtb.o \ 22 overlay_bad_symbol.dtb.o \
22 overlay_base.dtb.o 23 overlay_base.dtb.o
diff --git a/drivers/of/unittest-data/overlay_bad_add_dup_node.dts b/drivers/of/unittest-data/overlay_bad_add_dup_node.dts
new file mode 100644
index 000000000000..145dfc3b1024
--- /dev/null
+++ b/drivers/of/unittest-data/overlay_bad_add_dup_node.dts
@@ -0,0 +1,28 @@
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3/plugin/;
4
5/*
6 * &electric_1/motor-1 and &spin_ctrl_1 are the same node:
7 * /testcase-data-2/substation@100/motor-1
8 *
9 * Thus the new node "controller" in each fragment will
10 * result in an attempt to add the same node twice.
11 * This will result in an error and the overlay apply
12 * will fail.
13 */
14
15&electric_1 {
16
17 motor-1 {
18 controller {
19 power_bus = < 0x1 0x2 >;
20 };
21 };
22};
23
24&spin_ctrl_1 {
25 controller {
26 power_bus_emergency = < 0x101 0x102 >;
27 };
28};
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 49ae2aa744d6..f82edf829f43 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -2161,6 +2161,7 @@ OVERLAY_INFO_EXTERN(overlay_11);
2161OVERLAY_INFO_EXTERN(overlay_12); 2161OVERLAY_INFO_EXTERN(overlay_12);
2162OVERLAY_INFO_EXTERN(overlay_13); 2162OVERLAY_INFO_EXTERN(overlay_13);
2163OVERLAY_INFO_EXTERN(overlay_15); 2163OVERLAY_INFO_EXTERN(overlay_15);
2164OVERLAY_INFO_EXTERN(overlay_bad_add_dup_node);
2164OVERLAY_INFO_EXTERN(overlay_bad_phandle); 2165OVERLAY_INFO_EXTERN(overlay_bad_phandle);
2165OVERLAY_INFO_EXTERN(overlay_bad_symbol); 2166OVERLAY_INFO_EXTERN(overlay_bad_symbol);
2166 2167
@@ -2183,6 +2184,7 @@ static struct overlay_info overlays[] = {
2183 OVERLAY_INFO(overlay_12, 0), 2184 OVERLAY_INFO(overlay_12, 0),
2184 OVERLAY_INFO(overlay_13, 0), 2185 OVERLAY_INFO(overlay_13, 0),
2185 OVERLAY_INFO(overlay_15, 0), 2186 OVERLAY_INFO(overlay_15, 0),
2187 OVERLAY_INFO(overlay_bad_add_dup_node, -EINVAL),
2186 OVERLAY_INFO(overlay_bad_phandle, -EINVAL), 2188 OVERLAY_INFO(overlay_bad_phandle, -EINVAL),
2187 OVERLAY_INFO(overlay_bad_symbol, -EINVAL), 2189 OVERLAY_INFO(overlay_bad_symbol, -EINVAL),
2188 {} 2190 {}
@@ -2430,6 +2432,9 @@ static __init void of_unittest_overlay_high_level(void)
2430 unittest(overlay_data_apply("overlay", NULL), 2432 unittest(overlay_data_apply("overlay", NULL),
2431 "Adding overlay 'overlay' failed\n"); 2433 "Adding overlay 'overlay' failed\n");
2432 2434
2435 unittest(overlay_data_apply("overlay_bad_add_dup_node", NULL),
2436 "Adding overlay 'overlay_bad_add_dup_node' failed\n");
2437
2433 unittest(overlay_data_apply("overlay_bad_phandle", NULL), 2438 unittest(overlay_data_apply("overlay_bad_phandle", NULL),
2434 "Adding overlay 'overlay_bad_phandle' failed\n"); 2439 "Adding overlay 'overlay_bad_phandle' failed\n");
2435 2440