diff options
author | Hridya Valsaraju <hridya@google.com> | 2018-02-07 22:04:20 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-02-07 22:04:20 +0000 |
commit | c405db2fff21391254aaa8731b975a9b900b2cac (patch) | |
tree | cd61dbb1b6dc7e86d87440a00e7cc480f0b85aed | |
parent | 8b346b9e572eaeb16e5a3e97d5e46e0eff27346f (diff) | |
parent | 23dbdea31addcc9dac3945c736e82a6676a772d1 (diff) | |
download | libufdt-c405db2fff21391254aaa8731b975a9b900b2cac.tar.gz |
Add a test to verify application of multiple overlays am: d698d0eb90 am: ebc156d5ee
am: 23dbdea31a
Change-Id: Id1776b0616a5f0ea9e815d2de9189587e92f7e11
-rw-r--r-- | tests/apply_verify_multiple_overlay.sh | 71 | ||||
-rw-r--r-- | tests/testdata/multiple_overlay_1.dts | 9 | ||||
-rw-r--r-- | tests/testdata/multiple_overlay_2.dts | 5 | ||||
-rw-r--r-- | tests/testdata/multiple_overlay_3.dts | 4 | ||||
-rw-r--r-- | tests/testdata/multiple_overlay_4.dts | 4 |
5 files changed, 93 insertions, 0 deletions
diff --git a/tests/apply_verify_multiple_overlay.sh b/tests/apply_verify_multiple_overlay.sh new file mode 100644 index 0000000..7b748b2 --- /dev/null +++ b/tests/apply_verify_multiple_overlay.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +if [ -z "${ANDROID_HOST_OUT}" ]; then + echo 'ANDROID_HOST_OUT not set. Please run lunch' + exit 1 +fi + +# Global variables +BASE_DT_NAME="apply_fragment-base" +OVERLAY_DT_1="multiple_overlay_1" +OVERLAY_DT_2="multiple_overlay_2" +OVERLAY_DT_3="multiple_overlay_3" +OVERLAY_DT_4="multiple_overlay_4" +ANDROID_HOST_BIN_LOCATION=${ANDROID_HOST_OUT}/bin +IN_DATA_DIR="testdata" + +tmpdir=$(mktemp -d) +trap 'rm -rf ${tmpdir};' EXIT + +dtc -@ -qq -O dtb -o "${tmpdir}/${BASE_DT_NAME}.dtb" "${IN_DATA_DIR}/${BASE_DT_NAME}.dts" +dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_1}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_1}.dts" +dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_2}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_2}.dts" +dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_3}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_3}.dts" +dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_4}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_4}.dts" + +cd $tmpdir + +apply_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_apply_overlay_host" +$apply_bin_path "${BASE_DT_NAME}.dtb" "${OVERLAY_DT_1}.dtb" final_dt.dtb > /dev/null +$apply_bin_path final_dt.dtb "${OVERLAY_DT_2}.dtb" final_dt.dtb > /dev/null +$apply_bin_path final_dt.dtb "${OVERLAY_DT_3}.dtb" final_dt.dtb > /dev/null + +#verify that the overlay was correctly applied + +verify_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_verify_overlay_host" + +overlay_sets=( + "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" + "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_4}.dtb" + "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" + "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" + "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb" + "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" + "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" + "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" + "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" + "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" + "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" + "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" + "${OVERLAY_DT_1}.dtb" + "${OVERLAY_DT_2}.dtb" + "${OVERLAY_DT_3}.dtb" + "${OVERLAY_DT_4}.dtb" + "" + ) + +expected_out=(0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1) + +for((i=0;i<${#overlay_sets[@]};i++)) +do + $verify_bin_path final_dt.dtb ${overlay_sets[$i]} >& /dev/null + result=$? + if [[ "$result" -ne "${expected_out[$i]}" ]] + then + echo "Incorrect overlay application/verification for" ${overlay_sets[$i]} + exit 1 + fi +done + +echo "Overlays Verified Successfully" +exit 0 diff --git a/tests/testdata/multiple_overlay_1.dts b/tests/testdata/multiple_overlay_1.dts new file mode 100644 index 0000000..6003ecf --- /dev/null +++ b/tests/testdata/multiple_overlay_1.dts @@ -0,0 +1,9 @@ +/dts-v1/; +/plugin/; + +&a { prop1 = <0x01>; }; +&b { ref1 = <&a>; + e { + phandle = <0x04>; + }; +}; diff --git a/tests/testdata/multiple_overlay_2.dts b/tests/testdata/multiple_overlay_2.dts new file mode 100644 index 0000000..f3566b4 --- /dev/null +++ b/tests/testdata/multiple_overlay_2.dts @@ -0,0 +1,5 @@ +/dts-v1/; +/plugin/; + +&a { prop1 = <0x02>; }; +&c { prop2 = <&a 0x02>; }; diff --git a/tests/testdata/multiple_overlay_3.dts b/tests/testdata/multiple_overlay_3.dts new file mode 100644 index 0000000..af676b1 --- /dev/null +++ b/tests/testdata/multiple_overlay_3.dts @@ -0,0 +1,4 @@ +/dts-v1/; +/plugin/; + +&c { prop2 = <&b 0xfe>; }; diff --git a/tests/testdata/multiple_overlay_4.dts b/tests/testdata/multiple_overlay_4.dts new file mode 100644 index 0000000..3b0c274 --- /dev/null +++ b/tests/testdata/multiple_overlay_4.dts @@ -0,0 +1,4 @@ +/dts-v1/; +/plugin/; + +&c { prop2 = <&b 0xff>; }; |