tests: Add tests cases for the overlay code
Add some test infrastructure to test that the overlay can be merged, but
also that poorly formatted fixups would fail as expected.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
[dwg: Don't execute bad overlay tests without overlay aware dtc]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index f4b32e4..10b41bc 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -160,6 +160,37 @@
base_run_test sh fdtdump-runtest.sh "$file"
}
+BAD_FIXUP_TREES="bad_index \
+ empty \
+ empty_index \
+ index_trailing \
+ path_empty_prop \
+ path_only \
+ path_only_sep \
+ path_prop"
+
+overlay_tests () {
+ # Overlay tests that don't require overlay support in dtc
+ run_dtc_test -I dts -O dtb -o overlay_base.dtb overlay_base.dts
+ run_dtc_test -I dts -O dtb -o overlay_overlay.dtb overlay_overlay_nodtc.dts
+ run_test overlay overlay_base.dtb overlay_overlay.dtb
+
+ # Overlay tests that requires overlay support in dtc
+ echo "/dts-v1/; / {};" | $DTC -@ > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ run_dtc_test -@ -I dts -O dtb -o overlay_base.dtb overlay_base.dts
+ run_dtc_test -@ -I dts -O dtb -o overlay_overlay.dtb overlay_overlay_dtc.dts
+ run_test overlay overlay_base.dtb overlay_overlay.dtb
+
+ # Bad fixup tests
+ for test in $BAD_FIXUP_TREES; do
+ tree="overlay_bad_fixup_$test"
+ run_dtc_test -I dts -O dtb -o $tree.dtb $tree.dts
+ run_test overlay_bad_fixup overlay_base.dtb $tree.dtb
+ done
+ fi
+}
+
tree1_tests () {
TREE=$1
@@ -273,6 +304,7 @@
run_test appendprop2 appendprop1.test.dtb
run_dtc_test -I dts -O dtb -o appendprop.test.dtb appendprop.dts
run_test dtbs_equal_ordered appendprop2.test.dtb appendprop.test.dtb
+ overlay_tests
for basetree in test_tree1.dtb sw_tree1.test.dtb rw_tree1.test.dtb; do
run_test nopulate $basetree