tests: fdtoverlay unit test
Add an fdtoverlay unit test. Applies applies overlay(s) and then retrieves an inserted property to verify. Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
committed by
David Gibson
parent
42409146f2
commit
e3b9a9588a
40
tests/fdtoverlay-runtest.sh
Normal file
40
tests/fdtoverlay-runtest.sh
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# Run script for fdtoverlay tests
|
||||||
|
# We run fdtoverlay to generate a target device tree, thn fdtget to check it
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
# fdtoverlay-runtest.sh name expected_output dtb_file node property flags value
|
||||||
|
|
||||||
|
. ./tests.sh
|
||||||
|
|
||||||
|
LOG=tmp.log.$$
|
||||||
|
EXPECT=tmp.expect.$$
|
||||||
|
rm -f $LOG $EXPECT
|
||||||
|
trap "rm -f $LOG $EXPECT" 0
|
||||||
|
|
||||||
|
expect="$1"
|
||||||
|
echo $expect >$EXPECT
|
||||||
|
node="$2"
|
||||||
|
property="$3"
|
||||||
|
flags="$4"
|
||||||
|
basedtb="$5"
|
||||||
|
targetdtb="$6"
|
||||||
|
shift 6
|
||||||
|
overlays="$@"
|
||||||
|
|
||||||
|
# First run fdtoverlay
|
||||||
|
verbose_run_check $VALGRIND "$FDTOVERLAY" -i "$basedtb" -o "$targetdtb" $overlays
|
||||||
|
|
||||||
|
# Now fdtget to read the value
|
||||||
|
verbose_run_log_check "$LOG" $VALGRIND "$DTGET" "$targetdtb" "$node" "$property" $flags
|
||||||
|
|
||||||
|
if cmp $EXPECT $LOG >/dev/null; then
|
||||||
|
PASS
|
||||||
|
else
|
||||||
|
if [ -z "$QUIET_TEST" ]; then
|
||||||
|
echo "EXPECTED :-:"
|
||||||
|
cat $EXPECT
|
||||||
|
fi
|
||||||
|
FAIL "Results differ from expected"
|
||||||
|
fi
|
||||||
@@ -160,6 +160,14 @@ run_fdtdump_test() {
|
|||||||
base_run_test sh fdtdump-runtest.sh "$file" 2>/dev/null
|
base_run_test sh fdtdump-runtest.sh "$file" 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
run_fdtoverlay_test() {
|
||||||
|
expect="$1"
|
||||||
|
shift
|
||||||
|
shorten_echo fdtoverlay-runtest.sh "$expect" "$@"
|
||||||
|
printf ": "
|
||||||
|
base_run_test sh fdtoverlay-runtest.sh "$expect" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
BAD_FIXUP_TREES="bad_index \
|
BAD_FIXUP_TREES="bad_index \
|
||||||
empty \
|
empty \
|
||||||
empty_index \
|
empty_index \
|
||||||
@@ -771,6 +779,20 @@ fdtdump_tests () {
|
|||||||
run_fdtdump_test fdtdump.dts
|
run_fdtdump_test fdtdump.dts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fdtoverlay_tests() {
|
||||||
|
base=overlay_base.dts
|
||||||
|
basedtb=overlay_base.fdoverlay.test.dtb
|
||||||
|
overlay=overlay_overlay_manual_fixups.dts
|
||||||
|
overlaydtb=overlay_overlay_manual_fixups.fdoverlay.test.dtb
|
||||||
|
targetdtb=target.fdoverlay.test.dtb
|
||||||
|
|
||||||
|
run_dtc_test -@ -I dts -O dtb -o $basedtb $base
|
||||||
|
run_dtc_test -@ -I dts -O dtb -o $overlaydtb $overlay
|
||||||
|
|
||||||
|
# test that the new property is installed
|
||||||
|
run_fdtoverlay_test foobar "/test-node" "test-str-property" "-ts" ${basedtb} ${targetdtb} ${overlaydtb}
|
||||||
|
}
|
||||||
|
|
||||||
pylibfdt_tests () {
|
pylibfdt_tests () {
|
||||||
TMP=/tmp/tests.stderr.$$
|
TMP=/tmp/tests.stderr.$$
|
||||||
python pylibfdt_tests.py -v 2> $TMP
|
python pylibfdt_tests.py -v 2> $TMP
|
||||||
@@ -809,7 +831,7 @@ while getopts "vt:me" ARG ; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$TESTSETS" ]; then
|
if [ -z "$TESTSETS" ]; then
|
||||||
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump"
|
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump fdtoverlay"
|
||||||
|
|
||||||
# Test pylibfdt if the libfdt Python module is available.
|
# Test pylibfdt if the libfdt Python module is available.
|
||||||
if [ -f ../pylibfdt/_libfdt.so ]; then
|
if [ -f ../pylibfdt/_libfdt.so ]; then
|
||||||
@@ -846,6 +868,9 @@ for set in $TESTSETS; do
|
|||||||
"pylibfdt")
|
"pylibfdt")
|
||||||
pylibfdt_tests
|
pylibfdt_tests
|
||||||
;;
|
;;
|
||||||
|
"fdtoverlay")
|
||||||
|
fdtoverlay_tests
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ DTC=../dtc
|
|||||||
DTGET=../fdtget
|
DTGET=../fdtget
|
||||||
DTPUT=../fdtput
|
DTPUT=../fdtput
|
||||||
FDTDUMP=../fdtdump
|
FDTDUMP=../fdtdump
|
||||||
|
FDTOVERLAY=../fdtoverlay
|
||||||
|
|
||||||
verbose_run () {
|
verbose_run () {
|
||||||
if [ -z "$QUIET_TEST" ]; then
|
if [ -z "$QUIET_TEST" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user