[RFC PATCH 28/77] tests: metadata: Add a test for export symbols sorting
Herve Codina <[email protected]> Mon, 12 Jan 2026 15:19:18 +0100
| Newsgroups | org.kernel.vger.devicetree-spec,org.kernel.vger.devicetree-compiler,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
dtc is able to sort the export symbols list when the --sort option is used. Add a test for this feature. Signed-off-by: Herve Codina <[email protected]> --- tests/metadata_sort.dtb.dts.expect | 18 ++++++++++++++++++ tests/metadata_sort.dtb.expect | 15 +++++++++++++++ tests/metadata_sort.dts | 21 +++++++++++++++++++++ tests/run_tests.sh | 8 ++++++++ 4 files changed, 62 insertions(+) create mode 100644 tests/metadata_sort.dtb.dts.expect create mode 100644 tests/metadata_sort.dtb.expect create mode 100644 tests/metadata_sort.dts diff --git a/tests/metadata_sort.dtb.dts.expect b/tests/metadata_sort.dtb.dts.expect new file mode 100644 index 0000000..f07a42b --- /dev/null +++ b/tests/metadata_sort.dtb.dts.expect @@ -0,0 +1,18 @@ +/dts-v1/; +/addon/; + +/ { + + node-a { + prop_a = <0x1c8>; + prop_b = <0x7b>; + + /export/ a: &{/node-b}; + /export/ ba: &{/node-b}; + /export/ bb: &{/node-b}; + }; + + node-b { + phandle = <0x01>; + }; +}; diff --git a/tests/metadata_sort.dtb.expect b/tests/metadata_sort.dtb.expect new file mode 100644 index 0000000..7856894 --- /dev/null +++ b/tests/metadata_sort.dtb.expect @@ -0,0 +1,15 @@ +/dts-v1/; +/addon/; + +/ { + node-a { + prop_a = <0x000001c8>; + prop_b = <0x0000007b>; + // [FDT_EXPORT_SYM] 'a' -> phandle 0x00000001 + // [FDT_EXPORT_SYM] 'ba' -> phandle 0x00000001 + // [FDT_EXPORT_SYM] 'bb' -> phandle 0x00000001 + }; + node-b { + phandle = <0x00000001>; + }; +}; diff --git a/tests/metadata_sort.dts b/tests/metadata_sort.dts new file mode 100644 index 0000000..7d1cca7 --- /dev/null +++ b/tests/metadata_sort.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) +/* + * Copyright (C) 2026 Bootlin + */ + +/dts-v1/; +/addon/; + +/ { + node_b: node-b { + }; + + node-a { + prop_b = <123>; + prop_a = <456>; + + /export/ ba: &node_b; + /export/ bb: &node_b; + /export/ a: &node_b; + }; +}; diff --git a/tests/run_tests.sh b/tests/run_tests.sh index ed3a240..fc270e2 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -1154,6 +1154,14 @@ metadata_tests() { # Keep only lines containing 'dt_flags' sed -i '/dt_flags/!d' metadata_dtflags1.dtb.out base_run_test check_diff metadata_dtflags1.dtb.out "$SRCDIR/metadata_dtflags1.dtb.expect" + + run_dtc_test -I dts -O dtb -s -o metadata_sort.dtb "$SRCDIR/metadata_sort.dts" + base_run_test wrap_fdtdump metadata_sort.dtb metadata_sort.dtb.out + # Remove unneeded comments + sed -i '/^\/\/ /d' metadata_sort.dtb.out + base_run_test check_diff metadata_sort.dtb.out "$SRCDIR/metadata_sort.dtb.expect" + run_dtc_test -I dtb -O dts -o metadata_sort.dtb.dts metadata_sort.dtb + base_run_test check_diff metadata_sort.dtb.dts "$SRCDIR/metadata_sort.dtb.dts.expect" } pylibfdt_tests () { -- 2.52.0