Re: [PATCH] tests: compare the DTS generated from the tree against a model one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Sun, Oct 07, 2018 at 04:46:13PM +0200, Lubomir Rintel wrote:
> This would catch the cases, where the output DTS still parses well and
> produces a tree that we expect, yet it contains some weirdness.

I'm really not sure what sort of thing you're trying to catch with
this.  The problem is that exactly how we format the dts is
necessarily a heuristic - if we adjust or improve how we guess the
formatting for dts output the output *will* change, but it won't be
incorrect.

That's *why* I'm comparing dtb output to test the -I fs mode.

> Signed-off-by: Lubomir Rintel <lkundrak@xxxxx>
> ---
>  tests/fs_tree1.dts | 43 +++++++++++++++++++++++++++++++++++++++++++
>  tests/run_tests.sh | 14 ++++++++++++++
>  2 files changed, 57 insertions(+)
>  create mode 100644 tests/fs_tree1.dts
> 
> diff --git a/tests/fs_tree1.dts b/tests/fs_tree1.dts
> new file mode 100644
> index 0000000..aeae436
> --- /dev/null
> +++ b/tests/fs_tree1.dts
> @@ -0,0 +1,43 @@
> +/dts-v1/;
> +
> +/ {
> +	compatible = "test_tree1";
> +	#address-cells = <0x01>;
> +	#size-cells = <0x00>;
> +	prop-str = "hello world";
> +	prop-int = <0xdeadbeef>;
> +	prop-int64 = <0xdeadbeef 0x1abcdef>;
> +
> +	subnode@2 {
> +		#address-cells = <0x01>;
> +		linux,phandle = <0x2000>;
> +		#size-cells = <0x00>;
> +		reg = <0x02>;
> +		prop-int = <0x75bcd15>;
> +
> +		subsubnode@0 {
> +			compatible = "subsubnode2\0subsubnode";
> +			phandle = <0x2001>;
> +			reg = <0x00>;
> +			prop-int = <0x75bcd15>;
> +		};
> +
> +		ss2 {
> +		};
> +	};
> +
> +	subnode@1 {
> +		compatible = "subnode1";
> +		reg = <0x01>;
> +		prop-int = <0xdeadbeef>;
> +
> +		ss1 {
> +		};
> +
> +		subsubnode {
> +			compatible = "subsubnode1\0subsubnode";
> +			placeholder = "this is a placeholder string\0string2";
> +			prop-int = <0xdeadbeef>;
> +		};
> +	};
> +};
> diff --git a/tests/run_tests.sh b/tests/run_tests.sh
> index bc2cc77..e6483b7 100755
> --- a/tests/run_tests.sh
> +++ b/tests/run_tests.sh
> @@ -137,6 +137,19 @@ check_align () {
>      )
>  }
>  
> +# $1: first file
> +# $2: second file
> +files_equal () {
> +    shorten_echo "files_equal $@:	"
> +    (
> +	if diff -q $1 $2; then
> +	    PASS
> +	else
> +	    FAIL "File $1 differs from $2"
> +	fi
> +    )
> +}
> +
>  run_dtc_test () {
>      printf "dtc $*:	"
>      base_run_test wrap_test $VALGRIND $DTC "$@"
> @@ -460,6 +473,7 @@ libfdt_tests () {
>      run_dtc_test -I fs -O dts -o fs.test_tree1.test.dts $FSBASE/test_tree1
>      run_dtc_test -I fs -O dtb -o fs.test_tree1.test.dtb $FSBASE/test_tree1
>      run_test dtbs_equal_unordered -m fs.test_tree1.test.dtb test_tree1.dtb
> +    base_run_test files_equal fs_tree1.dts fs.test_tree1.test.dts
>  
>      # check full tests
>      for good in test_tree1.dtb; do

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux