From 4d12fac7939bdf4369b1f6a3d55f27cd577a6ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Tue, 14 Jan 2025 09:40:10 +0100 Subject: [PATCH] tests: Check for duplication in __local_fixups__ and __fixups__ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Typically the info contained in __local_fixups__ and __fixups__ is autogenerated from phandles used in the tree. However before commit 915daadbb62d ("Start with empty __local_fixups__ and __fixups__ nodes") compiling a dts that has both the __local_fixups__ and/or __fixups__ and phandles that result in entries in these nodes, the fixups were duplicated: $ cat test.dts /dts-v1/; /plugin/; / { important: node { property = <&somenode>, "string"; phandle = <0x01>; self = <&important>; }; __fixups__ { somenode = "/node:property:0"; }; __local_fixups__ { node { self = <0x00>; }; }; __symbols__ { important = "/node"; }; }; $ dtc -v Version: DTC 1.7.2 $ dtc -O dts test2.dts /dts-v1/; / { important: node { property = <&somenode>, "string"; phandle = <0x01>; self = <&important>; }; __fixups__ { somenode = "/node:property:0", "/node:property:0"; }; __local_fixups__ { node { self = <0x00>, <0x00>; }; }; __symbols__ { important = "/node"; }; }; Add a test that ensures this issue isn't reintroduced later. Signed-off-by: Uwe Kleine-König --- tests/over-determined.dts | 23 +++++++++++++++++++++++ tests/run_tests.sh | 4 ++++ 2 files changed, 27 insertions(+) create mode 100644 tests/over-determined.dts diff --git a/tests/over-determined.dts b/tests/over-determined.dts new file mode 100644 index 0000000..fff3795 --- /dev/null +++ b/tests/over-determined.dts @@ -0,0 +1,23 @@ +/dts-v1/; +/plugin/; + +/ { + labelfornodea: nodea { + property = <&labelfornodea>; + }; + + nodeb { + property = <&nonexisting>; + }; + + __fixups__ { + nonexisting = "/nodeb:property:0"; + }; + + __local_fixups__ { + nodea { + property = <0>; + }; + }; +}; + diff --git a/tests/run_tests.sh b/tests/run_tests.sh index fecfe7c..f6c8d41 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -570,6 +570,10 @@ dtc_tests () { run_dtc_test -I dts -O dtb -o dtc_sized_cells.test.dtb "$SRCDIR/sized_cells.dts" run_test sized_cells dtc_sized_cells.test.dtb + run_dtc_test -I dts -O dts -o over-determined-once.test.dts "$SRCDIR/over-determined.dts" + run_dtc_test -I dts -O dts -o over-determined-twice.test.dts "over-determined-once.test.dts" + run_wrap_test cmp over-determined-once.test.dts over-determined-twice.test.dts + run_dtc_test -I dts -O dtb -o dtc_extra-terminating-null.test.dtb "$SRCDIR/extra-terminating-null.dts" run_test extra-terminating-null dtc_extra-terminating-null.test.dtb