Home | History | Annotate | Line # | Download | only in tests
run_tests.sh revision 1.1.1.2.6.1
      1          1.1  macallan #! /bin/sh
      2          1.1  macallan 
      3  1.1.1.2.6.1    martin . ./testutils.sh
      4          1.1  macallan 
      5          1.1  macallan if [ -z "$CC" ]; then
      6          1.1  macallan     CC=gcc
      7          1.1  macallan fi
      8          1.1  macallan 
      9  1.1.1.2.6.1    martin # stat differs between platforms
     10  1.1.1.2.6.1    martin if [ -z "$STATSZ" ]; then
     11  1.1.1.2.6.1    martin 	stat --version 2>/dev/null | grep -q 'GNU'
     12  1.1.1.2.6.1    martin 	GNUSTAT=$?
     13  1.1.1.2.6.1    martin 	if [ "$GNUSTAT" -ne 0 ]; then
     14  1.1.1.2.6.1    martin 		# Assume BSD stat if we can't detect as GNU stat
     15  1.1.1.2.6.1    martin 		STATSZ="stat -f %Uz"
     16  1.1.1.2.6.1    martin 	else
     17  1.1.1.2.6.1    martin 		STATSZ="stat -c %s"
     18  1.1.1.2.6.1    martin 	fi
     19  1.1.1.2.6.1    martin fi
     20  1.1.1.2.6.1    martin 
     21  1.1.1.2.6.1    martin # Help things find the libfdt shared object
     22  1.1.1.2.6.1    martin export LD_LIBRARY_PATH=../libfdt
     23  1.1.1.2.6.1    martin 
     24          1.1  macallan export QUIET_TEST=1
     25          1.1  macallan STOP_ON_FAIL=0
     26          1.1  macallan 
     27          1.1  macallan export VALGRIND=
     28          1.1  macallan VGCODE=126
     29          1.1  macallan 
     30          1.1  macallan tot_tests=0
     31          1.1  macallan tot_pass=0
     32          1.1  macallan tot_fail=0
     33          1.1  macallan tot_config=0
     34          1.1  macallan tot_vg=0
     35          1.1  macallan tot_strange=0
     36          1.1  macallan 
     37          1.1  macallan base_run_test() {
     38          1.1  macallan     tot_tests=$((tot_tests + 1))
     39          1.1  macallan     if VALGRIND="$VALGRIND" "$@"; then
     40          1.1  macallan 	tot_pass=$((tot_pass + 1))
     41          1.1  macallan     else
     42          1.1  macallan 	ret="$?"
     43          1.1  macallan 	if [ "$STOP_ON_FAIL" -eq 1 ]; then
     44          1.1  macallan 	    exit 1
     45          1.1  macallan 	fi
     46          1.1  macallan 	if [ "$ret" -eq 1 ]; then
     47          1.1  macallan 	    tot_config=$((tot_config + 1))
     48          1.1  macallan 	elif [ "$ret" -eq 2 ]; then
     49          1.1  macallan 	    tot_fail=$((tot_fail + 1))
     50          1.1  macallan 	elif [ "$ret" -eq $VGCODE ]; then
     51          1.1  macallan 	    tot_vg=$((tot_vg + 1))
     52          1.1  macallan 	else
     53          1.1  macallan 	    tot_strange=$((tot_strange + 1))
     54          1.1  macallan 	fi
     55          1.1  macallan     fi
     56          1.1  macallan }
     57          1.1  macallan 
     58          1.1  macallan shorten_echo () {
     59          1.1  macallan     limit=32
     60          1.1  macallan     printf "$1"
     61          1.1  macallan     shift
     62          1.1  macallan     for x; do
     63          1.1  macallan 	if [ ${#x} -le $limit ]; then
     64          1.1  macallan 	    printf " $x"
     65          1.1  macallan 	else
     66          1.1  macallan 	    short=$(echo "$x" | head -c$limit)
     67          1.1  macallan 	    printf " \"$short\"...<${#x} bytes>"
     68          1.1  macallan 	fi
     69          1.1  macallan     done
     70          1.1  macallan }
     71          1.1  macallan 
     72          1.1  macallan run_test () {
     73          1.1  macallan     printf "$*:	"
     74          1.1  macallan     if [ -n "$VALGRIND" -a -f $1.supp ]; then
     75          1.1  macallan 	VGSUPP="--suppressions=$1.supp"
     76          1.1  macallan     fi
     77          1.1  macallan     base_run_test $VALGRIND $VGSUPP "./$@"
     78          1.1  macallan }
     79          1.1  macallan 
     80          1.1  macallan run_sh_test () {
     81          1.1  macallan     printf "$*:	"
     82          1.1  macallan     base_run_test sh "$@"
     83          1.1  macallan }
     84          1.1  macallan 
     85          1.1  macallan wrap_test () {
     86          1.1  macallan     (
     87          1.1  macallan 	if verbose_run "$@"; then
     88          1.1  macallan 	    PASS
     89          1.1  macallan 	else
     90          1.1  macallan 	    ret="$?"
     91          1.1  macallan 	    if [ "$ret" -gt 127 ]; then
     92          1.1  macallan 		signame=$(kill -l $((ret - 128)))
     93          1.1  macallan 		FAIL "Killed by SIG$signame"
     94  1.1.1.2.6.1    martin 	    elif [ "$ret" -eq $VGCODE ]; then
     95  1.1.1.2.6.1    martin 		echo "VALGRIND ERROR"
     96  1.1.1.2.6.1    martin 		exit $VGCODE
     97          1.1  macallan 	    else
     98          1.1  macallan 		FAIL "Returned error code $ret"
     99          1.1  macallan 	    fi
    100          1.1  macallan 	fi
    101          1.1  macallan     )
    102          1.1  macallan }
    103          1.1  macallan 
    104          1.1  macallan run_wrap_test () {
    105          1.1  macallan     shorten_echo "$@:	"
    106          1.1  macallan     base_run_test wrap_test "$@"
    107          1.1  macallan }
    108          1.1  macallan 
    109          1.1  macallan wrap_error () {
    110          1.1  macallan     (
    111          1.1  macallan 	if verbose_run "$@"; then
    112          1.1  macallan 	    FAIL "Expected non-zero return code"
    113          1.1  macallan 	else
    114          1.1  macallan 	    ret="$?"
    115          1.1  macallan 	    if [ "$ret" -gt 127 ]; then
    116          1.1  macallan 		signame=$(kill -l $((ret - 128)))
    117          1.1  macallan 		FAIL "Killed by SIG$signame"
    118          1.1  macallan 	    else
    119          1.1  macallan 		PASS
    120          1.1  macallan 	    fi
    121          1.1  macallan 	fi
    122          1.1  macallan     )
    123          1.1  macallan }
    124          1.1  macallan 
    125          1.1  macallan run_wrap_error_test () {
    126          1.1  macallan     shorten_echo "$@"
    127          1.1  macallan     printf " {!= 0}:	"
    128          1.1  macallan     base_run_test wrap_error "$@"
    129          1.1  macallan }
    130          1.1  macallan 
    131      1.1.1.2     skrll # $1: dtb file
    132      1.1.1.2     skrll # $2: align base
    133      1.1.1.2     skrll check_align () {
    134      1.1.1.2     skrll     shorten_echo "check_align $@:	"
    135  1.1.1.2.6.1    martin     local size=$($STATSZ "$1")
    136      1.1.1.2     skrll     local align="$2"
    137      1.1.1.2     skrll     (
    138      1.1.1.2     skrll 	if [ $(($size % $align)) -eq 0 ] ;then
    139      1.1.1.2     skrll 	    PASS
    140      1.1.1.2     skrll 	else
    141      1.1.1.2     skrll 	    FAIL "Output size $size is not $align-byte aligned"
    142      1.1.1.2     skrll 	fi
    143      1.1.1.2     skrll     )
    144      1.1.1.2     skrll }
    145      1.1.1.2     skrll 
    146          1.1  macallan run_dtc_test () {
    147          1.1  macallan     printf "dtc $*:	"
    148          1.1  macallan     base_run_test wrap_test $VALGRIND $DTC "$@"
    149          1.1  macallan }
    150          1.1  macallan 
    151          1.1  macallan asm_to_so () {
    152          1.1  macallan     $CC -shared -o $1.test.so data.S $1.test.s
    153          1.1  macallan }
    154          1.1  macallan 
    155          1.1  macallan asm_to_so_test () {
    156          1.1  macallan     run_wrap_test asm_to_so "$@"
    157          1.1  macallan }
    158          1.1  macallan 
    159          1.1  macallan run_fdtget_test () {
    160          1.1  macallan     expect="$1"
    161          1.1  macallan     shift
    162          1.1  macallan     printf "fdtget-runtest.sh %s $*:	" "$(echo $expect)"
    163          1.1  macallan     base_run_test sh fdtget-runtest.sh "$expect" "$@"
    164          1.1  macallan }
    165          1.1  macallan 
    166          1.1  macallan run_fdtput_test () {
    167          1.1  macallan     expect="$1"
    168          1.1  macallan     shift
    169          1.1  macallan     shorten_echo fdtput-runtest.sh "$expect" "$@"
    170          1.1  macallan     printf ":	"
    171          1.1  macallan     base_run_test sh fdtput-runtest.sh "$expect" "$@"
    172          1.1  macallan }
    173          1.1  macallan 
    174          1.1  macallan run_fdtdump_test() {
    175          1.1  macallan     file="$1"
    176          1.1  macallan     shorten_echo fdtdump-runtest.sh "$file"
    177          1.1  macallan     printf ":	"
    178  1.1.1.2.6.1    martin     base_run_test sh fdtdump-runtest.sh "$file" 2>/dev/null
    179  1.1.1.2.6.1    martin }
    180  1.1.1.2.6.1    martin 
    181  1.1.1.2.6.1    martin run_fdtoverlay_test() {
    182  1.1.1.2.6.1    martin     expect="$1"
    183  1.1.1.2.6.1    martin     shift
    184  1.1.1.2.6.1    martin     shorten_echo fdtoverlay-runtest.sh "$expect" "$@"
    185  1.1.1.2.6.1    martin     printf ":	"
    186  1.1.1.2.6.1    martin     base_run_test sh fdtoverlay-runtest.sh "$expect" "$@"
    187          1.1  macallan }
    188          1.1  macallan 
    189      1.1.1.2     skrll BAD_FIXUP_TREES="bad_index \
    190      1.1.1.2     skrll 		empty \
    191      1.1.1.2     skrll 		empty_index \
    192      1.1.1.2     skrll 		index_trailing \
    193      1.1.1.2     skrll 		path_empty_prop \
    194      1.1.1.2     skrll 		path_only \
    195      1.1.1.2     skrll 		path_only_sep \
    196      1.1.1.2     skrll 		path_prop"
    197      1.1.1.2     skrll 
    198      1.1.1.2     skrll # Test to exercise libfdt overlay application without dtc's overlay support
    199      1.1.1.2     skrll libfdt_overlay_tests () {
    200      1.1.1.2     skrll     # First test a doctored overlay which requires only local fixups
    201      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_base_no_symbols.test.dtb overlay_base.dts
    202      1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__symbols__"
    203      1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__fixups__"
    204      1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__local_fixups__"
    205      1.1.1.2     skrll 
    206      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_no_fixups.test.dtb overlay_overlay_no_fixups.dts
    207      1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb not-exists "/__symbols__"
    208      1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb not-exists "/__fixups__"
    209      1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb exists "/__local_fixups__"
    210      1.1.1.2     skrll 
    211      1.1.1.2     skrll     run_test overlay overlay_base_no_symbols.test.dtb overlay_overlay_no_fixups.test.dtb
    212      1.1.1.2     skrll 
    213      1.1.1.2     skrll     # Then test with manually constructed fixups
    214      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_base_manual_symbols.test.dtb overlay_base_manual_symbols.dts
    215      1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb exists "/__symbols__"
    216      1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb not-exists "/__fixups__"
    217      1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb not-exists "/__local_fixups__"
    218      1.1.1.2     skrll 
    219      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_manual_fixups.test.dtb overlay_overlay_manual_fixups.dts
    220      1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb not-exists "/__symbols__"
    221      1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb exists "/__fixups__"
    222      1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb exists "/__local_fixups__"
    223      1.1.1.2     skrll 
    224      1.1.1.2     skrll     run_test overlay overlay_base_manual_symbols.test.dtb overlay_overlay_manual_fixups.test.dtb
    225      1.1.1.2     skrll 
    226  1.1.1.2.6.1    martin     # test simplified plugin syntax
    227  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o overlay_overlay_simple.dtb overlay_overlay_simple.dts
    228  1.1.1.2.6.1    martin 
    229  1.1.1.2.6.1    martin     # verify non-generation of local fixups
    230  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_simple.dtb not-exists "/__local_fixups__"
    231  1.1.1.2.6.1    martin 
    232      1.1.1.2     skrll     # Bad fixup tests
    233      1.1.1.2     skrll     for test in $BAD_FIXUP_TREES; do
    234      1.1.1.2     skrll 	tree="overlay_bad_fixup_$test"
    235      1.1.1.2     skrll 	run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree.dts
    236      1.1.1.2     skrll 	run_test overlay_bad_fixup overlay_base_no_symbols.test.dtb $tree.test.dtb
    237      1.1.1.2     skrll     done
    238      1.1.1.2     skrll }
    239      1.1.1.2     skrll 
    240      1.1.1.2     skrll # Tests to exercise dtc's overlay generation support
    241      1.1.1.2     skrll dtc_overlay_tests () {
    242      1.1.1.2     skrll     # Overlay tests for dtc
    243      1.1.1.2     skrll     run_dtc_test -@ -I dts -O dtb -o overlay_base.test.dtb overlay_base.dts
    244      1.1.1.2     skrll     run_test check_path overlay_base.test.dtb exists "/__symbols__"
    245      1.1.1.2     skrll     run_test check_path overlay_base.test.dtb not-exists "/__fixups__"
    246      1.1.1.2     skrll     run_test check_path overlay_base.test.dtb not-exists "/__local_fixups__"
    247      1.1.1.2     skrll 
    248  1.1.1.2.6.1    martin     # With syntactic sugar
    249      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay.test.dtb overlay_overlay.dts
    250      1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb not-exists "/__symbols__"
    251      1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb exists "/__fixups__"
    252      1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb exists "/__local_fixups__"
    253      1.1.1.2     skrll 
    254  1.1.1.2.6.1    martin     # Without syntactic sugar
    255  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_overlay_nosugar.test.dtb overlay_overlay.dts
    256  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_nosugar.test.dtb not-exists "/__symbols__"
    257  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_nosugar.test.dtb exists "/__fixups__"
    258  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_nosugar.test.dtb exists "/__local_fixups__"
    259  1.1.1.2.6.1    martin 
    260  1.1.1.2.6.1    martin     # Using target-path
    261  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_overlay_bypath.test.dtb overlay_overlay_bypath.dts
    262  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_bypath.test.dtb not-exists "/__symbols__"
    263  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_bypath.test.dtb not-exists "/__fixups__"
    264  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_bypath.test.dtb exists "/__local_fixups__"
    265  1.1.1.2.6.1    martin 
    266  1.1.1.2.6.1    martin     # Make sure local target references are resolved and nodes are merged and that path references are not
    267  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_overlay_local_merge.test.dtb overlay_overlay_local_merge.dts
    268  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_local_merge.test.dtb exists "/fragment@0/__overlay__/new-node/new-merged-node"
    269  1.1.1.2.6.1    martin     run_test check_path overlay_overlay_local_merge.test.dtb exists "/fragment@1/__overlay__/new-root-node"
    270  1.1.1.2.6.1    martin 
    271  1.1.1.2.6.1    martin     # Check building works the same as manual constructions
    272  1.1.1.2.6.1    martin     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_nosugar.test.dtb
    273  1.1.1.2.6.1    martin 
    274  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_overlay_manual_fixups.test.dtb overlay_overlay_manual_fixups.dts
    275  1.1.1.2.6.1    martin     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_manual_fixups.test.dtb
    276  1.1.1.2.6.1    martin 
    277  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_overlay_no_fixups.test.dtb overlay_overlay_no_fixups.dts
    278  1.1.1.2.6.1    martin     run_test dtbs_equal_ordered overlay_overlay_bypath.test.dtb overlay_overlay_no_fixups.test.dtb
    279  1.1.1.2.6.1    martin 
    280  1.1.1.2.6.1    martin     # Check we can actually apply the result
    281  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o overlay_base_no_symbols.test.dtb overlay_base.dts
    282      1.1.1.2     skrll     run_test overlay overlay_base.test.dtb overlay_overlay.test.dtb
    283  1.1.1.2.6.1    martin     run_test overlay overlay_base_no_symbols.test.dtb overlay_overlay_bypath.test.dtb
    284      1.1.1.2     skrll 
    285      1.1.1.2     skrll     # test plugin source to dtb and back
    286      1.1.1.2     skrll     run_dtc_test -I dtb -O dts -o overlay_overlay_decompile.test.dts overlay_overlay.test.dtb
    287      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_decompile.test.dtb overlay_overlay_decompile.test.dts
    288      1.1.1.2     skrll     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_decompile.test.dtb
    289      1.1.1.2     skrll 
    290  1.1.1.2.6.1    martin     # Test generation of aliases instead of symbols
    291      1.1.1.2     skrll     run_dtc_test -A -I dts -O dtb -o overlay_base_with_aliases.dtb overlay_base.dts
    292      1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb exists "/aliases"
    293      1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__symbols__"
    294      1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__fixups__"
    295      1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__local_fixups__"
    296      1.1.1.2     skrll }
    297      1.1.1.2     skrll 
    298          1.1  macallan tree1_tests () {
    299          1.1  macallan     TREE=$1
    300          1.1  macallan 
    301          1.1  macallan     # Read-only tests
    302          1.1  macallan     run_test get_mem_rsv $TREE
    303          1.1  macallan     run_test root_node $TREE
    304          1.1  macallan     run_test find_property $TREE
    305          1.1  macallan     run_test subnode_offset $TREE
    306          1.1  macallan     run_test path_offset $TREE
    307          1.1  macallan     run_test get_name $TREE
    308          1.1  macallan     run_test getprop $TREE
    309  1.1.1.2.6.1    martin     run_test get_prop_offset $TREE
    310          1.1  macallan     run_test get_phandle $TREE
    311          1.1  macallan     run_test get_path $TREE
    312          1.1  macallan     run_test supernode_atdepth_offset $TREE
    313          1.1  macallan     run_test parent_offset $TREE
    314          1.1  macallan     run_test node_offset_by_prop_value $TREE
    315          1.1  macallan     run_test node_offset_by_phandle $TREE
    316          1.1  macallan     run_test node_check_compatible $TREE
    317          1.1  macallan     run_test node_offset_by_compatible $TREE
    318          1.1  macallan     run_test notfound $TREE
    319          1.1  macallan 
    320          1.1  macallan     # Write-in-place tests
    321          1.1  macallan     run_test setprop_inplace $TREE
    322          1.1  macallan     run_test nop_property $TREE
    323          1.1  macallan     run_test nop_node $TREE
    324          1.1  macallan }
    325          1.1  macallan 
    326          1.1  macallan tree1_tests_rw () {
    327          1.1  macallan     TREE=$1
    328          1.1  macallan 
    329          1.1  macallan     # Read-write tests
    330          1.1  macallan     run_test set_name $TREE
    331          1.1  macallan     run_test setprop $TREE
    332          1.1  macallan     run_test del_property $TREE
    333          1.1  macallan     run_test del_node $TREE
    334          1.1  macallan }
    335          1.1  macallan 
    336          1.1  macallan check_tests () {
    337          1.1  macallan     tree="$1"
    338          1.1  macallan     shift
    339          1.1  macallan     run_sh_test dtc-checkfails.sh "$@" -- -I dts -O dtb $tree
    340          1.1  macallan     run_dtc_test -I dts -O dtb -o $tree.test.dtb -f $tree
    341          1.1  macallan     run_sh_test dtc-checkfails.sh "$@" -- -I dtb -O dtb $tree.test.dtb
    342          1.1  macallan }
    343          1.1  macallan 
    344          1.1  macallan ALL_LAYOUTS="mts mst tms tsm smt stm"
    345          1.1  macallan 
    346          1.1  macallan libfdt_tests () {
    347          1.1  macallan     tree1_tests test_tree1.dtb
    348          1.1  macallan 
    349          1.1  macallan     run_dtc_test -I dts -O dtb -o addresses.test.dtb addresses.dts
    350          1.1  macallan     run_test addr_size_cells addresses.test.dtb
    351  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o addresses2.test.dtb empty.dts
    352  1.1.1.2.6.1    martin     run_test addr_size_cells2 addresses2.test.dtb
    353          1.1  macallan 
    354          1.1  macallan     run_dtc_test -I dts -O dtb -o stringlist.test.dtb stringlist.dts
    355          1.1  macallan     run_test stringlist stringlist.test.dtb
    356          1.1  macallan 
    357  1.1.1.2.6.1    martin     for flags in default no_name_dedup; do
    358  1.1.1.2.6.1    martin         # Sequential write tests
    359  1.1.1.2.6.1    martin         run_test sw_tree1 fixed $flags
    360  1.1.1.2.6.1    martin         tree1_tests sw_tree1.test.dtb
    361  1.1.1.2.6.1    martin         tree1_tests unfinished_tree1.test.dtb
    362  1.1.1.2.6.1    martin         run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    363  1.1.1.2.6.1    martin         run_test sw_states
    364  1.1.1.2.6.1    martin 
    365  1.1.1.2.6.1    martin         # Resizing tests
    366  1.1.1.2.6.1    martin         for mode in resize realloc newalloc; do
    367  1.1.1.2.6.1    martin             run_test sw_tree1 $mode $flags
    368  1.1.1.2.6.1    martin             tree1_tests sw_tree1.test.dtb
    369  1.1.1.2.6.1    martin             tree1_tests unfinished_tree1.test.dtb
    370  1.1.1.2.6.1    martin             run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    371  1.1.1.2.6.1    martin         done
    372          1.1  macallan     done
    373          1.1  macallan 
    374          1.1  macallan     # fdt_move tests
    375          1.1  macallan     for tree in test_tree1.dtb sw_tree1.test.dtb unfinished_tree1.test.dtb; do
    376          1.1  macallan 	rm -f moved.$tree shunted.$tree deshunted.$tree
    377          1.1  macallan 	run_test move_and_save $tree
    378          1.1  macallan 	run_test dtbs_equal_ordered $tree moved.$tree
    379          1.1  macallan 	run_test dtbs_equal_ordered $tree shunted.$tree
    380          1.1  macallan 	run_test dtbs_equal_ordered $tree deshunted.$tree
    381          1.1  macallan     done
    382          1.1  macallan 
    383          1.1  macallan     # v16 and alternate layout tests
    384          1.1  macallan     for tree in test_tree1.dtb; do
    385          1.1  macallan 	for version in 17 16; do
    386          1.1  macallan 	    for layout in $ALL_LAYOUTS; do
    387          1.1  macallan 		run_test mangle-layout $tree $version $layout
    388          1.1  macallan 		tree1_tests v$version.$layout.$tree
    389          1.1  macallan 		run_test dtbs_equal_ordered $tree v$version.$layout.$tree
    390          1.1  macallan 	    done
    391          1.1  macallan 	done
    392          1.1  macallan     done
    393          1.1  macallan 
    394          1.1  macallan     # Read-write tests
    395          1.1  macallan     for basetree in test_tree1.dtb; do
    396          1.1  macallan 	for version in 17 16; do
    397          1.1  macallan 	    for layout in $ALL_LAYOUTS; do
    398          1.1  macallan 		tree=v$version.$layout.$basetree
    399          1.1  macallan 		rm -f opened.$tree repacked.$tree
    400          1.1  macallan 		run_test open_pack $tree
    401          1.1  macallan 		tree1_tests opened.$tree
    402          1.1  macallan 		tree1_tests repacked.$tree
    403          1.1  macallan 
    404          1.1  macallan 		tree1_tests_rw $tree
    405          1.1  macallan 		tree1_tests_rw opened.$tree
    406          1.1  macallan 		tree1_tests_rw repacked.$tree
    407          1.1  macallan 	    done
    408          1.1  macallan 	done
    409          1.1  macallan     done
    410          1.1  macallan     run_test rw_tree1
    411          1.1  macallan     tree1_tests rw_tree1.test.dtb
    412          1.1  macallan     tree1_tests_rw rw_tree1.test.dtb
    413          1.1  macallan     run_test appendprop1
    414          1.1  macallan     run_test appendprop2 appendprop1.test.dtb
    415          1.1  macallan     run_dtc_test -I dts -O dtb -o appendprop.test.dtb appendprop.dts
    416          1.1  macallan     run_test dtbs_equal_ordered appendprop2.test.dtb appendprop.test.dtb
    417      1.1.1.2     skrll     libfdt_overlay_tests
    418          1.1  macallan 
    419          1.1  macallan     for basetree in test_tree1.dtb sw_tree1.test.dtb rw_tree1.test.dtb; do
    420          1.1  macallan 	run_test nopulate $basetree
    421          1.1  macallan 	run_test dtbs_equal_ordered $basetree noppy.$basetree
    422          1.1  macallan 	tree1_tests noppy.$basetree
    423          1.1  macallan 	tree1_tests_rw noppy.$basetree
    424          1.1  macallan     done
    425          1.1  macallan 
    426  1.1.1.2.6.1    martin     run_test rw_oom
    427  1.1.1.2.6.1    martin 
    428          1.1  macallan     run_dtc_test -I dts -O dtb -o subnode_iterate.dtb subnode_iterate.dts
    429          1.1  macallan     run_test subnode_iterate subnode_iterate.dtb
    430          1.1  macallan 
    431      1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o property_iterate.dtb property_iterate.dts
    432      1.1.1.2     skrll     run_test property_iterate property_iterate.dtb
    433      1.1.1.2     skrll 
    434  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o unit-addr-without-reg.dtb unit-addr-without-reg.dts
    435  1.1.1.2.6.1    martin     run_test appendprop_addrrange unit-addr-without-reg.dtb 1 1 1
    436  1.1.1.2.6.1    martin     run_test appendprop_addrrange unit-addr-without-reg.dtb 2 2 2
    437  1.1.1.2.6.1    martin     run_test appendprop_addrrange unit-addr-without-reg.dtb 2 1 3
    438  1.1.1.2.6.1    martin 
    439          1.1  macallan     # Tests for behaviour on various sorts of corrupted trees
    440          1.1  macallan     run_test truncated_property
    441  1.1.1.2.6.1    martin     run_test truncated_string
    442  1.1.1.2.6.1    martin     run_test truncated_memrsv
    443          1.1  macallan 
    444          1.1  macallan     # Check aliases support in fdt_path_offset
    445          1.1  macallan     run_dtc_test -I dts -O dtb -o aliases.dtb aliases.dts
    446          1.1  macallan     run_test get_alias aliases.dtb
    447          1.1  macallan     run_test path_offset_aliases aliases.dtb
    448          1.1  macallan 
    449          1.1  macallan     # Specific bug tests
    450          1.1  macallan     run_test add_subnode_with_nops
    451          1.1  macallan     run_dtc_test -I dts -O dts -o sourceoutput.test.dts sourceoutput.dts
    452          1.1  macallan     run_dtc_test -I dts -O dtb -o sourceoutput.test.dtb sourceoutput.dts
    453          1.1  macallan     run_dtc_test -I dts -O dtb -o sourceoutput.test.dts.test.dtb sourceoutput.test.dts
    454          1.1  macallan     run_test dtbs_equal_ordered sourceoutput.test.dtb sourceoutput.test.dts.test.dtb
    455          1.1  macallan 
    456          1.1  macallan     run_dtc_test -I dts -O dtb -o embedded_nul.test.dtb embedded_nul.dts
    457          1.1  macallan     run_dtc_test -I dts -O dtb -o embedded_nul_equiv.test.dtb embedded_nul_equiv.dts
    458          1.1  macallan     run_test dtbs_equal_ordered embedded_nul.test.dtb embedded_nul_equiv.test.dtb
    459          1.1  macallan 
    460          1.1  macallan     run_dtc_test -I dts -O dtb bad-size-cells.dts
    461      1.1.1.2     skrll 
    462      1.1.1.2     skrll     run_wrap_error_test $DTC division-by-zero.dts
    463      1.1.1.2     skrll     run_wrap_error_test $DTC bad-octal-literal.dts
    464      1.1.1.2     skrll     run_dtc_test -I dts -O dtb nul-in-escape.dts
    465      1.1.1.2     skrll     run_wrap_error_test $DTC nul-in-line-info1.dts
    466      1.1.1.2     skrll     run_wrap_error_test $DTC nul-in-line-info2.dts
    467      1.1.1.2     skrll 
    468      1.1.1.2     skrll     run_wrap_error_test $DTC -I dtb -O dts -o /dev/null ovf_size_strings.dtb
    469  1.1.1.2.6.1    martin 
    470  1.1.1.2.6.1    martin     run_test check_header test_tree1.dtb
    471  1.1.1.2.6.1    martin 
    472  1.1.1.2.6.1    martin     FSBASE=fs
    473  1.1.1.2.6.1    martin     rm -rf $FSBASE
    474  1.1.1.2.6.1    martin     mkdir -p $FSBASE
    475  1.1.1.2.6.1    martin     run_test fs_tree1 $FSBASE/test_tree1
    476  1.1.1.2.6.1    martin     run_dtc_test -I fs -O dts -o fs.test_tree1.test.dts $FSBASE/test_tree1
    477  1.1.1.2.6.1    martin     run_dtc_test -I fs -O dtb -o fs.test_tree1.test.dtb $FSBASE/test_tree1
    478  1.1.1.2.6.1    martin     run_test dtbs_equal_unordered -m fs.test_tree1.test.dtb test_tree1.dtb
    479  1.1.1.2.6.1    martin 
    480  1.1.1.2.6.1    martin     # check full tests
    481  1.1.1.2.6.1    martin     for good in test_tree1.dtb; do
    482  1.1.1.2.6.1    martin 	run_test check_full $good
    483  1.1.1.2.6.1    martin     done
    484  1.1.1.2.6.1    martin     for bad in truncated_property.dtb truncated_string.dtb \
    485  1.1.1.2.6.1    martin 				      truncated_memrsv.dtb; do
    486  1.1.1.2.6.1    martin 	run_test check_full -n $bad
    487  1.1.1.2.6.1    martin     done
    488          1.1  macallan }
    489          1.1  macallan 
    490          1.1  macallan dtc_tests () {
    491          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1.test.dtb test_tree1.dts
    492          1.1  macallan     tree1_tests dtc_tree1.test.dtb
    493          1.1  macallan     tree1_tests_rw dtc_tree1.test.dtb
    494          1.1  macallan     run_test dtbs_equal_ordered dtc_tree1.test.dtb test_tree1.dtb
    495          1.1  macallan 
    496          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_escapes.test.dtb propname_escapes.dts
    497          1.1  macallan     run_test propname_escapes dtc_escapes.test.dtb
    498          1.1  macallan 
    499          1.1  macallan     run_dtc_test -I dts -O dtb -o line_directives.test.dtb line_directives.dts
    500          1.1  macallan 
    501          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_escapes.test.dtb escapes.dts
    502          1.1  macallan     run_test string_escapes dtc_escapes.test.dtb
    503          1.1  macallan 
    504          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_char_literal.test.dtb char_literal.dts
    505          1.1  macallan     run_test char_literal dtc_char_literal.test.dtb
    506          1.1  macallan 
    507          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_sized_cells.test.dtb sized_cells.dts
    508          1.1  macallan     run_test sized_cells dtc_sized_cells.test.dtb
    509          1.1  macallan 
    510          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_extra-terminating-null.test.dtb extra-terminating-null.dts
    511          1.1  macallan     run_test extra-terminating-null dtc_extra-terminating-null.test.dtb
    512          1.1  macallan 
    513          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_references.test.dtb references.dts
    514          1.1  macallan     run_test references dtc_references.test.dtb
    515          1.1  macallan 
    516          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_path-references.test.dtb path-references.dts
    517          1.1  macallan     run_test path-references dtc_path-references.test.dtb
    518          1.1  macallan 
    519  1.1.1.2.6.1    martin     run_test phandle_format dtc_references.test.dtb epapr
    520          1.1  macallan     for f in legacy epapr both; do
    521          1.1  macallan 	run_dtc_test -I dts -O dtb -H $f -o dtc_references.test.$f.dtb references.dts
    522          1.1  macallan 	run_test phandle_format dtc_references.test.$f.dtb $f
    523          1.1  macallan     done
    524          1.1  macallan 
    525          1.1  macallan     run_dtc_test -I dts -O dtb -o multilabel.test.dtb multilabel.dts
    526          1.1  macallan     run_test references multilabel.test.dtb
    527          1.1  macallan 
    528          1.1  macallan     run_dtc_test -I dts -O dtb -o label_repeated.test.dtb label_repeated.dts
    529          1.1  macallan 
    530          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_comments.test.dtb comments.dts
    531          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_comments-cmp.test.dtb comments-cmp.dts
    532          1.1  macallan     run_test dtbs_equal_ordered dtc_comments.test.dtb dtc_comments-cmp.test.dtb
    533          1.1  macallan 
    534          1.1  macallan     # Check /include/ directive
    535          1.1  macallan     run_dtc_test -I dts -O dtb -o includes.test.dtb include0.dts
    536          1.1  macallan     run_test dtbs_equal_ordered includes.test.dtb test_tree1.dtb
    537          1.1  macallan 
    538          1.1  macallan     # Check /incbin/ directive
    539          1.1  macallan     run_dtc_test -I dts -O dtb -o incbin.test.dtb incbin.dts
    540          1.1  macallan     run_test incbin incbin.test.dtb
    541          1.1  macallan 
    542          1.1  macallan     # Check boot_cpuid_phys handling
    543          1.1  macallan     run_dtc_test -I dts -O dtb -o boot_cpuid.test.dtb boot-cpuid.dts
    544          1.1  macallan     run_test boot-cpuid boot_cpuid.test.dtb 16
    545          1.1  macallan 
    546          1.1  macallan     run_dtc_test -I dts -O dtb -b 17 -o boot_cpuid_17.test.dtb boot-cpuid.dts
    547          1.1  macallan     run_test boot-cpuid boot_cpuid_17.test.dtb 17
    548          1.1  macallan 
    549          1.1  macallan     run_dtc_test -I dtb -O dtb -o preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb
    550          1.1  macallan     run_test boot-cpuid preserve_boot_cpuid.test.dtb 16
    551          1.1  macallan     run_test dtbs_equal_ordered preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb
    552          1.1  macallan 
    553          1.1  macallan     run_dtc_test -I dtb -O dtb -o preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    554          1.1  macallan     run_test boot-cpuid preserve_boot_cpuid_17.test.dtb 17
    555          1.1  macallan     run_test dtbs_equal_ordered preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    556          1.1  macallan 
    557          1.1  macallan     run_dtc_test -I dtb -O dtb -b17 -o override17_boot_cpuid.test.dtb boot_cpuid.test.dtb
    558          1.1  macallan     run_test boot-cpuid override17_boot_cpuid.test.dtb 17
    559          1.1  macallan 
    560          1.1  macallan     run_dtc_test -I dtb -O dtb -b0 -o override0_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    561          1.1  macallan     run_test boot-cpuid override0_boot_cpuid_17.test.dtb 0
    562          1.1  macallan 
    563          1.1  macallan 
    564          1.1  macallan     # Check -Oasm mode
    565          1.1  macallan     for tree in test_tree1.dts escapes.dts references.dts path-references.dts \
    566          1.1  macallan 	comments.dts aliases.dts include0.dts incbin.dts \
    567          1.1  macallan 	value-labels.dts ; do
    568          1.1  macallan 	run_dtc_test -I dts -O asm -o oasm_$tree.test.s $tree
    569          1.1  macallan 	asm_to_so_test oasm_$tree
    570          1.1  macallan 	run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree
    571          1.1  macallan 	run_test asm_tree_dump ./oasm_$tree.test.so oasm_$tree.test.dtb
    572          1.1  macallan 	run_wrap_test cmp oasm_$tree.test.dtb $tree.test.dtb
    573          1.1  macallan     done
    574          1.1  macallan 
    575          1.1  macallan     run_test value-labels ./oasm_value-labels.dts.test.so
    576          1.1  macallan 
    577          1.1  macallan     # Check -Odts mode preserve all dtb information
    578          1.1  macallan     for tree in test_tree1.dtb dtc_tree1.test.dtb dtc_escapes.test.dtb \
    579          1.1  macallan 	dtc_extra-terminating-null.test.dtb dtc_references.test.dtb; do
    580          1.1  macallan 	run_dtc_test -I dtb -O dts -o odts_$tree.test.dts $tree
    581          1.1  macallan 	run_dtc_test -I dts -O dtb -o odts_$tree.test.dtb odts_$tree.test.dts
    582          1.1  macallan 	run_test dtbs_equal_ordered $tree odts_$tree.test.dtb
    583          1.1  macallan     done
    584          1.1  macallan 
    585  1.1.1.2.6.1    martin     # Check -Odts preserving type information
    586  1.1.1.2.6.1    martin     for tree in type-preservation.dts; do
    587  1.1.1.2.6.1    martin         run_dtc_test -I dts -O dts -o $tree.test.dts $tree
    588  1.1.1.2.6.1    martin         run_dtc_test -I dts -O dts $tree.test.dts
    589  1.1.1.2.6.1    martin         run_wrap_test cmp $tree $tree.test.dts
    590  1.1.1.2.6.1    martin     done
    591  1.1.1.2.6.1    martin     for tree in path-references; do
    592  1.1.1.2.6.1    martin         run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree.dts
    593  1.1.1.2.6.1    martin         run_dtc_test -I dts -O dts -o $tree.test.dts $tree.dts
    594  1.1.1.2.6.1    martin         run_dtc_test -I dts -O dtb -o $tree.test.dts.test.dtb $tree.test.dts
    595  1.1.1.2.6.1    martin         run_test dtbs_equal_ordered $tree.test.dtb $tree.test.dts.test.dtb
    596  1.1.1.2.6.1    martin     done
    597  1.1.1.2.6.1    martin 
    598  1.1.1.2.6.1    martin     # Check -Oyaml output
    599  1.1.1.2.6.1    martin     if pkg-config --exists yaml-0.1; then
    600  1.1.1.2.6.1    martin             for tree in type-preservation; do
    601  1.1.1.2.6.1    martin                 run_dtc_test -I dts -O yaml -o $tree.test.dt.yaml $tree.dts
    602  1.1.1.2.6.1    martin                 run_wrap_test cmp $tree.dt.yaml $tree.test.dt.yaml
    603  1.1.1.2.6.1    martin             done
    604  1.1.1.2.6.1    martin     fi
    605  1.1.1.2.6.1    martin 
    606          1.1  macallan     # Check version conversions
    607          1.1  macallan     for tree in test_tree1.dtb ; do
    608          1.1  macallan 	 for aver in 1 2 3 16 17; do
    609          1.1  macallan 	     atree="ov${aver}_$tree.test.dtb"
    610          1.1  macallan 	     run_dtc_test -I dtb -O dtb -V$aver -o $atree $tree
    611          1.1  macallan 	     for bver in 16 17; do
    612          1.1  macallan 		 btree="ov${bver}_$atree"
    613          1.1  macallan 		 run_dtc_test -I dtb -O dtb -V$bver -o $btree $atree
    614          1.1  macallan 		 run_test dtbs_equal_ordered $btree $tree
    615          1.1  macallan 	     done
    616          1.1  macallan 	 done
    617          1.1  macallan     done
    618          1.1  macallan 
    619          1.1  macallan     # Check merge/overlay functionality
    620          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge.test.dtb test_tree1_merge.dts
    621          1.1  macallan     tree1_tests dtc_tree1_merge.test.dtb test_tree1.dtb
    622          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge_labelled.test.dtb test_tree1_merge_labelled.dts
    623          1.1  macallan     tree1_tests dtc_tree1_merge_labelled.test.dtb test_tree1.dtb
    624          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_label_noderef.test.dtb test_tree1_label_noderef.dts
    625          1.1  macallan     run_test dtbs_equal_unordered dtc_tree1_label_noderef.test.dtb test_tree1.dtb
    626          1.1  macallan     run_dtc_test -I dts -O dtb -o multilabel_merge.test.dtb multilabel_merge.dts
    627          1.1  macallan     run_test references multilabel.test.dtb
    628          1.1  macallan     run_test dtbs_equal_ordered multilabel.test.dtb multilabel_merge.test.dtb
    629          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge_path.test.dtb test_tree1_merge_path.dts
    630          1.1  macallan     tree1_tests dtc_tree1_merge_path.test.dtb test_tree1.dtb
    631      1.1.1.2     skrll     run_wrap_error_test $DTC -I dts -O dtb -o /dev/null test_label_ref.dts
    632          1.1  macallan 
    633          1.1  macallan     # Check prop/node delete functionality
    634          1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_delete.test.dtb test_tree1_delete.dts
    635          1.1  macallan     tree1_tests dtc_tree1_delete.test.dtb
    636          1.1  macallan 
    637  1.1.1.2.6.1    martin     # Check omit-if-no-ref functionality
    638  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o omit-no-ref.test.dtb omit-no-ref.dts
    639  1.1.1.2.6.1    martin     run_test check_path omit-no-ref.test.dtb not-exists "/node1"
    640  1.1.1.2.6.1    martin     run_test check_path omit-no-ref.test.dtb not-exists "/node2"
    641  1.1.1.2.6.1    martin     run_test check_path omit-no-ref.test.dtb exists "/node3"
    642  1.1.1.2.6.1    martin     run_test check_path omit-no-ref.test.dtb exists "/node4"
    643  1.1.1.2.6.1    martin 
    644          1.1  macallan     run_dtc_test -I dts -O dts -o delete_reinstate_multilabel.dts.test.dts delete_reinstate_multilabel.dts
    645          1.1  macallan     run_wrap_test cmp delete_reinstate_multilabel.dts.test.dts delete_reinstate_multilabel_ref.dts
    646          1.1  macallan 
    647          1.1  macallan     # Check some checks
    648          1.1  macallan     check_tests dup-nodename.dts duplicate_node_names
    649          1.1  macallan     check_tests dup-propname.dts duplicate_property_names
    650          1.1  macallan     check_tests dup-phandle.dts explicit_phandles
    651          1.1  macallan     check_tests zero-phandle.dts explicit_phandles
    652          1.1  macallan     check_tests minusone-phandle.dts explicit_phandles
    653          1.1  macallan     run_sh_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-node-ref.dts
    654          1.1  macallan     run_sh_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-label-ref.dts
    655          1.1  macallan     run_sh_test dtc-fatal.sh -I dts -O dtb nonexist-node-ref2.dts
    656          1.1  macallan     check_tests bad-name-property.dts name_properties
    657          1.1  macallan 
    658          1.1  macallan     check_tests bad-ncells.dts address_cells_is_cell size_cells_is_cell interrupt_cells_is_cell
    659  1.1.1.2.6.1    martin     check_tests bad-string-props.dts device_type_is_string model_is_string status_is_string label_is_string compatible_is_string_list names_is_string_list
    660  1.1.1.2.6.1    martin     check_tests bad-chosen.dts chosen_node_is_root
    661  1.1.1.2.6.1    martin     check_tests bad-chosen.dts chosen_node_bootargs
    662  1.1.1.2.6.1    martin     check_tests bad-chosen.dts chosen_node_stdout_path
    663          1.1  macallan     check_tests bad-reg-ranges.dts reg_format ranges_format
    664          1.1  macallan     check_tests bad-empty-ranges.dts ranges_format
    665          1.1  macallan     check_tests reg-ranges-root.dts reg_format ranges_format
    666          1.1  macallan     check_tests default-addr-size.dts avoid_default_addr_size
    667          1.1  macallan     check_tests obsolete-chosen-interrupt-controller.dts obsolete_chosen_interrupt_controller
    668      1.1.1.2     skrll     check_tests reg-without-unit-addr.dts unit_address_vs_reg
    669      1.1.1.2     skrll     check_tests unit-addr-without-reg.dts unit_address_vs_reg
    670  1.1.1.2.6.1    martin     check_tests unit-addr-leading-0x.dts unit_address_format
    671  1.1.1.2.6.1    martin     check_tests unit-addr-leading-0s.dts unit_address_format
    672  1.1.1.2.6.1    martin     check_tests unit-addr-unique.dts unique_unit_address
    673  1.1.1.2.6.1    martin     check_tests bad-phandle-cells.dts interrupts_extended_property
    674  1.1.1.2.6.1    martin     check_tests bad-gpio.dts gpios_property
    675  1.1.1.2.6.1    martin     check_tests bad-graph.dts graph_child_address
    676  1.1.1.2.6.1    martin     check_tests bad-graph.dts graph_port
    677  1.1.1.2.6.1    martin     check_tests bad-graph.dts graph_endpoint
    678  1.1.1.2.6.1    martin     run_sh_test dtc-checkfails.sh deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb bad-gpio.dts
    679  1.1.1.2.6.1    martin     check_tests bad-interrupt-cells.dts interrupts_property
    680          1.1  macallan     run_sh_test dtc-checkfails.sh node_name_chars -- -I dtb -O dtb bad_node_char.dtb
    681          1.1  macallan     run_sh_test dtc-checkfails.sh node_name_format -- -I dtb -O dtb bad_node_format.dtb
    682  1.1.1.2.6.1    martin     run_sh_test dtc-checkfails.sh property_name_chars -- -I dtb -O dtb bad_prop_char.dtb
    683          1.1  macallan 
    684          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label1.dts
    685          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label2.dts
    686          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label3.dts
    687          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label4.dts
    688          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label5.dts
    689          1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label6.dts
    690          1.1  macallan 
    691      1.1.1.2     skrll     run_test check_path test_tree1.dtb exists "/subnode@1"
    692      1.1.1.2     skrll     run_test check_path test_tree1.dtb not-exists "/subnode@10"
    693      1.1.1.2     skrll 
    694  1.1.1.2.6.1    martin     check_tests pci-bridge-ok.dts -n pci_bridge
    695  1.1.1.2.6.1    martin     check_tests pci-bridge-bad1.dts pci_bridge
    696  1.1.1.2.6.1    martin     check_tests pci-bridge-bad2.dts pci_bridge
    697  1.1.1.2.6.1    martin 
    698  1.1.1.2.6.1    martin     check_tests unit-addr-simple-bus-reg-mismatch.dts simple_bus_reg
    699  1.1.1.2.6.1    martin     check_tests unit-addr-simple-bus-compatible.dts simple_bus_reg
    700  1.1.1.2.6.1    martin 
    701  1.1.1.2.6.1    martin 
    702          1.1  macallan     # Check warning options
    703          1.1  macallan     run_sh_test dtc-checkfails.sh address_cells_is_cell interrupt_cells_is_cell -n size_cells_is_cell -- -Wno_size_cells_is_cell -I dts -O dtb bad-ncells.dts
    704          1.1  macallan     run_sh_test dtc-fails.sh -n test-warn-output.test.dtb -I dts -O dtb bad-ncells.dts
    705          1.1  macallan     run_sh_test dtc-fails.sh test-error-output.test.dtb -I dts -O dtb bad-ncells.dts -Esize_cells_is_cell
    706          1.1  macallan     run_sh_test dtc-checkfails.sh always_fail -- -Walways_fail -I dts -O dtb test_tree1.dts
    707          1.1  macallan     run_sh_test dtc-checkfails.sh -n always_fail -- -Walways_fail -Wno_always_fail -I dts -O dtb test_tree1.dts
    708          1.1  macallan     run_sh_test dtc-fails.sh test-negation-1.test.dtb -Ealways_fail -I dts -O dtb test_tree1.dts
    709          1.1  macallan     run_sh_test dtc-fails.sh -n test-negation-2.test.dtb -Ealways_fail -Eno_always_fail -I dts -O dtb test_tree1.dts
    710          1.1  macallan     run_sh_test dtc-fails.sh test-negation-3.test.dtb -Ealways_fail -Wno_always_fail -I dts -O dtb test_tree1.dts
    711          1.1  macallan     run_sh_test dtc-fails.sh -n test-negation-4.test.dtb -Esize_cells_is_cell -Eno_size_cells_is_cell -I dts -O dtb bad-ncells.dts
    712          1.1  macallan     run_sh_test dtc-checkfails.sh size_cells_is_cell -- -Esize_cells_is_cell -Eno_size_cells_is_cell -I dts -O dtb bad-ncells.dts
    713          1.1  macallan 
    714          1.1  macallan     # Check for proper behaviour reading from stdin
    715          1.1  macallan     run_dtc_test -I dts -O dtb -o stdin_dtc_tree1.test.dtb - < test_tree1.dts
    716          1.1  macallan     run_wrap_test cmp stdin_dtc_tree1.test.dtb dtc_tree1.test.dtb
    717          1.1  macallan     run_dtc_test -I dtb -O dts -o stdin_odts_test_tree1.dtb.test.dts - < test_tree1.dtb
    718          1.1  macallan     run_wrap_test cmp stdin_odts_test_tree1.dtb.test.dts odts_test_tree1.dtb.test.dts
    719          1.1  macallan 
    720          1.1  macallan     # Check integer expresisons
    721          1.1  macallan     run_test integer-expressions -g integer-expressions.test.dts
    722          1.1  macallan     run_dtc_test -I dts -O dtb -o integer-expressions.test.dtb integer-expressions.test.dts
    723          1.1  macallan     run_test integer-expressions integer-expressions.test.dtb
    724          1.1  macallan 
    725          1.1  macallan     # Check for graceful failure in some error conditions
    726          1.1  macallan     run_sh_test dtc-fatal.sh -I dts -O dtb nosuchfile.dts
    727          1.1  macallan     run_sh_test dtc-fatal.sh -I dtb -O dtb nosuchfile.dtb
    728          1.1  macallan     run_sh_test dtc-fatal.sh -I fs -O dtb nosuchfile
    729          1.1  macallan 
    730          1.1  macallan     # Dependencies
    731          1.1  macallan     run_dtc_test -I dts -O dtb -o dependencies.test.dtb -d dependencies.test.d dependencies.dts
    732          1.1  macallan     run_wrap_test cmp dependencies.test.d dependencies.cmp
    733          1.1  macallan 
    734          1.1  macallan     # Search paths
    735          1.1  macallan     run_wrap_error_test $DTC -I dts -O dtb -o search_paths.dtb search_paths.dts
    736          1.1  macallan     run_dtc_test -i search_dir -I dts -O dtb -o search_paths.dtb \
    737          1.1  macallan 	search_paths.dts
    738          1.1  macallan     run_wrap_error_test $DTC -i search_dir_b -I dts -O dtb \
    739          1.1  macallan 	-o search_paths_b.dtb search_paths_b.dts
    740          1.1  macallan     run_dtc_test -i search_dir_b -i search_dir -I dts -O dtb \
    741          1.1  macallan 	-o search_paths_b.dtb search_paths_b.dts
    742          1.1  macallan     run_dtc_test -I dts -O dtb -o search_paths_subdir.dtb \
    743          1.1  macallan 	search_dir_b/search_paths_subdir.dts
    744      1.1.1.2     skrll 
    745      1.1.1.2     skrll     # Check -a option
    746      1.1.1.2     skrll     for align in 2 4 8 16 32 64; do
    747      1.1.1.2     skrll 	# -p -a
    748      1.1.1.2     skrll 	run_dtc_test -O dtb -p 1000 -a $align -o align0.dtb subnode_iterate.dts
    749  1.1.1.2.6.1    martin 	base_run_test check_align align0.dtb $align
    750      1.1.1.2     skrll 	# -S -a
    751      1.1.1.2     skrll 	run_dtc_test -O dtb -S 1999 -a $align -o align1.dtb subnode_iterate.dts
    752  1.1.1.2.6.1    martin 	base_run_test check_align align1.dtb $align
    753      1.1.1.2     skrll     done
    754      1.1.1.2     skrll 
    755      1.1.1.2     skrll     # Tests for overlay/plugin generation
    756      1.1.1.2     skrll     dtc_overlay_tests
    757          1.1  macallan }
    758          1.1  macallan 
    759          1.1  macallan cmp_tests () {
    760          1.1  macallan     basetree="$1"
    761          1.1  macallan     shift
    762          1.1  macallan     wrongtrees="$@"
    763          1.1  macallan 
    764          1.1  macallan     run_test dtb_reverse $basetree
    765          1.1  macallan 
    766          1.1  macallan     # First dtbs_equal_ordered
    767          1.1  macallan     run_test dtbs_equal_ordered $basetree $basetree
    768          1.1  macallan     run_test dtbs_equal_ordered -n $basetree $basetree.reversed.test.dtb
    769          1.1  macallan     for tree in $wrongtrees; do
    770          1.1  macallan 	run_test dtbs_equal_ordered -n $basetree $tree
    771          1.1  macallan     done
    772          1.1  macallan 
    773          1.1  macallan     # now unordered
    774          1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree
    775          1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree.reversed.test.dtb
    776          1.1  macallan     run_test dtbs_equal_unordered $basetree.reversed.test.dtb $basetree
    777          1.1  macallan     for tree in $wrongtrees; do
    778          1.1  macallan 	run_test dtbs_equal_unordered -n $basetree $tree
    779          1.1  macallan     done
    780          1.1  macallan 
    781          1.1  macallan     # now dtc --sort
    782          1.1  macallan     run_dtc_test -I dtb -O dtb -s -o $basetree.sorted.test.dtb $basetree
    783          1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree.sorted.test.dtb
    784          1.1  macallan     run_dtc_test -I dtb -O dtb -s -o $basetree.reversed.sorted.test.dtb $basetree.reversed.test.dtb
    785          1.1  macallan     run_test dtbs_equal_unordered $basetree.reversed.test.dtb $basetree.reversed.sorted.test.dtb
    786          1.1  macallan     run_test dtbs_equal_ordered $basetree.sorted.test.dtb $basetree.reversed.sorted.test.dtb
    787          1.1  macallan }
    788          1.1  macallan 
    789          1.1  macallan dtbs_equal_tests () {
    790          1.1  macallan     WRONG_TREE1=""
    791          1.1  macallan     for x in 1 2 3 4 5 6 7 8 9; do
    792          1.1  macallan 	run_dtc_test -I dts -O dtb -o test_tree1_wrong$x.test.dtb test_tree1_wrong$x.dts
    793          1.1  macallan 	WRONG_TREE1="$WRONG_TREE1 test_tree1_wrong$x.test.dtb"
    794          1.1  macallan     done
    795          1.1  macallan     cmp_tests test_tree1.dtb $WRONG_TREE1
    796          1.1  macallan }
    797          1.1  macallan 
    798          1.1  macallan fdtget_tests () {
    799          1.1  macallan     dts=label01.dts
    800          1.1  macallan     dtb=$dts.fdtget.test.dtb
    801          1.1  macallan     run_dtc_test -O dtb -o $dtb $dts
    802          1.1  macallan 
    803          1.1  macallan     # run_fdtget_test <expected-result> [<flags>] <file> <node> <property>
    804          1.1  macallan     run_fdtget_test "MyBoardName" $dtb / model
    805          1.1  macallan     run_fdtget_test "MyBoardName MyBoardFamilyName" $dtb / compatible
    806          1.1  macallan     run_fdtget_test "77 121 66 111 \
    807          1.1  macallan 97 114 100 78 97 109 101 0 77 121 66 111 97 114 100 70 97 109 105 \
    808          1.1  macallan 108 121 78 97 109 101 0" -t bu $dtb / compatible
    809          1.1  macallan     run_fdtget_test "MyBoardName MyBoardFamilyName" -t s $dtb / compatible
    810          1.1  macallan     run_fdtget_test 32768 $dtb /cpus/PowerPC,970@1 d-cache-size
    811          1.1  macallan     run_fdtget_test 8000 -tx $dtb /cpus/PowerPC,970@1 d-cache-size
    812          1.1  macallan     run_fdtget_test "61 62 63 0" -tbx $dtb /randomnode tricky1
    813          1.1  macallan     run_fdtget_test "a b c d de ea ad be ef" -tbx $dtb /randomnode blob
    814          1.1  macallan 
    815          1.1  macallan     # Here the property size is not a multiple of 4 bytes, so it should fail
    816          1.1  macallan     run_wrap_error_test $DTGET -tlx $dtb /randomnode mixed
    817          1.1  macallan     run_fdtget_test "6162 6300 1234 0 a 0 b 0 c" -thx $dtb /randomnode mixed
    818          1.1  macallan     run_fdtget_test "61 62 63 0 12 34 0 0 0 a 0 0 0 b 0 0 0 c" \
    819          1.1  macallan 	-thhx $dtb /randomnode mixed
    820          1.1  macallan     run_wrap_error_test $DTGET -ts $dtb /randomnode doctor-who
    821          1.1  macallan 
    822          1.1  macallan     # Test multiple arguments
    823          1.1  macallan     run_fdtget_test "MyBoardName\nmemory" -ts $dtb / model /memory device_type
    824          1.1  macallan 
    825          1.1  macallan     # Test defaults
    826          1.1  macallan     run_wrap_error_test $DTGET -tx $dtb /randomnode doctor-who
    827          1.1  macallan     run_fdtget_test "<the dead silence>" -tx \
    828          1.1  macallan 	-d "<the dead silence>" $dtb /randomnode doctor-who
    829          1.1  macallan     run_fdtget_test "<blink>" -tx -d "<blink>" $dtb /memory doctor-who
    830          1.1  macallan }
    831          1.1  macallan 
    832          1.1  macallan fdtput_tests () {
    833          1.1  macallan     dts=label01.dts
    834          1.1  macallan     dtb=$dts.fdtput.test.dtb
    835          1.1  macallan     text=lorem.txt
    836          1.1  macallan 
    837          1.1  macallan     # Allow just enough space for $text
    838  1.1.1.2.6.1    martin     run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts
    839          1.1  macallan 
    840          1.1  macallan     # run_fdtput_test <expected-result> <file> <node> <property> <flags> <value>
    841          1.1  macallan     run_fdtput_test "a_model" $dtb / model -ts "a_model"
    842          1.1  macallan     run_fdtput_test "board1 board2" $dtb / compatible -ts board1 board2
    843          1.1  macallan     run_fdtput_test "board1 board2" $dtb / compatible -ts "board1 board2"
    844          1.1  macallan     run_fdtput_test "32768" $dtb /cpus/PowerPC,970@1 d-cache-size "" "32768"
    845          1.1  macallan     run_fdtput_test "8001" $dtb /cpus/PowerPC,970@1 d-cache-size -tx 0x8001
    846          1.1  macallan     run_fdtput_test "2 3 12" $dtb /randomnode tricky1 -tbi "02 003 12"
    847          1.1  macallan     run_fdtput_test "a b c ea ad be ef" $dtb /randomnode blob \
    848          1.1  macallan 	-tbx "a b c ea ad be ef"
    849          1.1  macallan     run_fdtput_test "a0b0c0d deeaae ef000000" $dtb /randomnode blob \
    850          1.1  macallan 	-tx "a0b0c0d deeaae ef000000"
    851          1.1  macallan     run_fdtput_test "$(cat $text)" $dtb /randomnode blob -ts "$(cat $text)"
    852          1.1  macallan 
    853          1.1  macallan     # Test expansion of the blob when insufficient room for property
    854          1.1  macallan     run_fdtput_test "$(cat $text $text)" $dtb /randomnode blob -ts "$(cat $text $text)"
    855          1.1  macallan 
    856          1.1  macallan     # Start again with a fresh dtb
    857  1.1.1.2.6.1    martin     run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts
    858          1.1  macallan 
    859          1.1  macallan     # Node creation
    860          1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /baldrick sod
    861          1.1  macallan     run_wrap_test $DTPUT $dtb -c /chosen/son /chosen/daughter
    862          1.1  macallan     run_fdtput_test "eva" $dtb /chosen/daughter name "" -ts "eva"
    863          1.1  macallan     run_fdtput_test "adam" $dtb /chosen/son name "" -ts "adam"
    864          1.1  macallan 
    865          1.1  macallan     # Not allowed to create an existing node
    866          1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /chosen
    867          1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /chosen/son
    868          1.1  macallan 
    869          1.1  macallan     # Automatic node creation
    870          1.1  macallan     run_wrap_test $DTPUT $dtb -cp /blackadder/the-second/turnip \
    871          1.1  macallan 	/blackadder/the-second/potato
    872          1.1  macallan     run_fdtput_test 1000 $dtb /blackadder/the-second/turnip cost "" 1000
    873          1.1  macallan     run_fdtput_test "fine wine" $dtb /blackadder/the-second/potato drink \
    874          1.1  macallan 	"-ts" "fine wine"
    875          1.1  macallan     run_wrap_test $DTPUT $dtb -p /you/are/drunk/sir/winston slurp -ts twice
    876          1.1  macallan 
    877  1.1.1.2.6.1    martin     # Test expansion of the blob when insufficient room for a new node
    878          1.1  macallan     run_wrap_test $DTPUT $dtb -cp "$(cat $text $text)/longish"
    879          1.1  macallan 
    880          1.1  macallan     # Allowed to create an existing node with -p
    881          1.1  macallan     run_wrap_test $DTPUT $dtb -cp /chosen
    882          1.1  macallan     run_wrap_test $DTPUT $dtb -cp /chosen/son
    883          1.1  macallan 
    884          1.1  macallan     # Start again with a fresh dtb
    885  1.1.1.2.6.1    martin     run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts
    886          1.1  macallan 
    887          1.1  macallan     # Node delete
    888          1.1  macallan     run_wrap_test $DTPUT $dtb -c /chosen/node1 /chosen/node2 /chosen/node3
    889          1.1  macallan     run_fdtget_test "node3\nnode2\nnode1" $dtb -l  /chosen
    890          1.1  macallan     run_wrap_test $DTPUT $dtb -r /chosen/node1 /chosen/node2
    891          1.1  macallan     run_fdtget_test "node3" $dtb -l  /chosen
    892          1.1  macallan 
    893          1.1  macallan     # Delete the non-existent node
    894          1.1  macallan     run_wrap_error_test $DTPUT $dtb -r /non-existent/node
    895          1.1  macallan 
    896          1.1  macallan     # Property delete
    897          1.1  macallan     run_fdtput_test "eva" $dtb /chosen/ name "" -ts "eva"
    898          1.1  macallan     run_fdtput_test "016" $dtb /chosen/ age  "" -ts "016"
    899          1.1  macallan     run_fdtget_test "age\nname\nbootargs\nlinux,platform" $dtb -p  /chosen
    900          1.1  macallan     run_wrap_test $DTPUT $dtb -d /chosen/ name age
    901          1.1  macallan     run_fdtget_test "bootargs\nlinux,platform" $dtb -p  /chosen
    902          1.1  macallan 
    903          1.1  macallan     # Delete the non-existent property
    904          1.1  macallan     run_wrap_error_test $DTPUT $dtb -d /chosen   non-existent-prop
    905          1.1  macallan 
    906          1.1  macallan     # TODO: Add tests for verbose mode?
    907          1.1  macallan }
    908          1.1  macallan 
    909          1.1  macallan utilfdt_tests () {
    910          1.1  macallan     run_test utilfdt_test
    911          1.1  macallan }
    912          1.1  macallan 
    913          1.1  macallan fdtdump_tests () {
    914          1.1  macallan     run_fdtdump_test fdtdump.dts
    915          1.1  macallan }
    916          1.1  macallan 
    917  1.1.1.2.6.1    martin fdtoverlay_tests() {
    918  1.1.1.2.6.1    martin     base=overlay_base.dts
    919  1.1.1.2.6.1    martin     basedtb=overlay_base.fdoverlay.test.dtb
    920  1.1.1.2.6.1    martin     overlay=overlay_overlay_manual_fixups.dts
    921  1.1.1.2.6.1    martin     overlaydtb=overlay_overlay_manual_fixups.fdoverlay.test.dtb
    922  1.1.1.2.6.1    martin     targetdtb=target.fdoverlay.test.dtb
    923  1.1.1.2.6.1    martin 
    924  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $basedtb $base
    925  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $overlaydtb $overlay
    926  1.1.1.2.6.1    martin 
    927  1.1.1.2.6.1    martin     # test that the new property is installed
    928  1.1.1.2.6.1    martin     run_fdtoverlay_test foobar "/test-node" "test-str-property" "-ts" ${basedtb} ${targetdtb} ${overlaydtb}
    929  1.1.1.2.6.1    martin 
    930  1.1.1.2.6.1    martin     stacked_base=stacked_overlay_base.dts
    931  1.1.1.2.6.1    martin     stacked_basedtb=stacked_overlay_base.fdtoverlay.test.dtb
    932  1.1.1.2.6.1    martin     stacked_bar=stacked_overlay_bar.dts
    933  1.1.1.2.6.1    martin     stacked_bardtb=stacked_overlay_bar.fdtoverlay.test.dtb
    934  1.1.1.2.6.1    martin     stacked_baz=stacked_overlay_baz.dts
    935  1.1.1.2.6.1    martin     stacked_bazdtb=stacked_overlay_baz.fdtoverlay.test.dtb
    936  1.1.1.2.6.1    martin     stacked_targetdtb=stacked_overlay_target.fdtoverlay.test.dtb
    937  1.1.1.2.6.1    martin 
    938  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $stacked_basedtb $stacked_base
    939  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $stacked_bardtb $stacked_bar
    940  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $stacked_bazdtb $stacked_baz
    941  1.1.1.2.6.1    martin 
    942  1.1.1.2.6.1    martin     # test that baz correctly inserted the property
    943  1.1.1.2.6.1    martin     run_fdtoverlay_test baz "/foonode/barnode/baznode" "baz-property" "-ts" ${stacked_basedtb} ${stacked_targetdtb} ${stacked_bardtb} ${stacked_bazdtb}
    944  1.1.1.2.6.1    martin 
    945  1.1.1.2.6.1    martin     overlay_long_path=overlay_overlay_long_path.dts
    946  1.1.1.2.6.1    martin     overlay_long_pathdtb=overlay_overlay_long_path.fdoverlay.test.dtb
    947  1.1.1.2.6.1    martin     target_long_pathdtb=overlay_overlay_long_path_target.fdoverlay.test.dtb
    948  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $overlay_long_pathdtb $overlay_long_path
    949  1.1.1.2.6.1    martin 
    950  1.1.1.2.6.1    martin     # test that fdtoverlay manages to apply overlays with long target path
    951  1.1.1.2.6.1    martin     run_fdtoverlay_test lpath "/test-node/sub-test-node/sub-test-node-with-very-long-target-path/test-0" "prop" "-ts" ${basedtb} ${target_long_pathdtb} ${overlay_long_pathdtb}
    952  1.1.1.2.6.1    martin 
    953  1.1.1.2.6.1    martin     # test adding a label to the root of a fragment
    954  1.1.1.2.6.1    martin     stacked_base_nolabel=stacked_overlay_base_nolabel.dts
    955  1.1.1.2.6.1    martin     stacked_base_nolabeldtb=stacked_overlay_base_nolabel.test.dtb
    956  1.1.1.2.6.1    martin     stacked_addlabel=stacked_overlay_addlabel.dts
    957  1.1.1.2.6.1    martin     stacked_addlabeldtb=stacked_overlay_addlabel.test.dtb
    958  1.1.1.2.6.1    martin     stacked_addlabel_targetdtb=stacked_overlay_target_nolabel.fdtoverlay.test.dtb
    959  1.1.1.2.6.1    martin 
    960  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $stacked_base_nolabeldtb $stacked_base_nolabel
    961  1.1.1.2.6.1    martin     run_dtc_test -@ -I dts -O dtb -o $stacked_addlabeldtb $stacked_addlabel
    962  1.1.1.2.6.1    martin 
    963  1.1.1.2.6.1    martin     run_fdtoverlay_test baz "/foonode/barnode/baznode" "baz-property" "-ts" ${stacked_base_nolabeldtb} ${stacked_addlabel_targetdtb} ${stacked_addlabeldtb} ${stacked_bardtb} ${stacked_bazdtb}
    964  1.1.1.2.6.1    martin }
    965  1.1.1.2.6.1    martin 
    966  1.1.1.2.6.1    martin pylibfdt_tests () {
    967  1.1.1.2.6.1    martin     run_dtc_test -I dts -O dtb -o test_props.dtb test_props.dts
    968  1.1.1.2.6.1    martin     TMP=/tmp/tests.stderr.$$
    969  1.1.1.2.6.1    martin     $PYTHON pylibfdt_tests.py -v 2> $TMP
    970  1.1.1.2.6.1    martin 
    971  1.1.1.2.6.1    martin     # Use the 'ok' message meaning the test passed, 'ERROR' meaning it failed
    972  1.1.1.2.6.1    martin     # and the summary line for total tests (e.g. 'Ran 17 tests in 0.002s').
    973  1.1.1.2.6.1    martin     # We could add pass + fail to get total tests, but this provides a useful
    974  1.1.1.2.6.1    martin     # sanity check.
    975  1.1.1.2.6.1    martin     pass_count=$(grep "ok$" $TMP | wc -l)
    976  1.1.1.2.6.1    martin     fail_count=$(grep "^ERROR: " $TMP | wc -l)
    977  1.1.1.2.6.1    martin     total_tests=$(sed -n 's/^Ran \([0-9]*\) tests.*$/\1/p' $TMP)
    978  1.1.1.2.6.1    martin     cat $TMP
    979  1.1.1.2.6.1    martin     rm $TMP
    980  1.1.1.2.6.1    martin 
    981  1.1.1.2.6.1    martin     # Extract the test results and add them to our totals
    982  1.1.1.2.6.1    martin     tot_fail=$((tot_fail + $fail_count))
    983  1.1.1.2.6.1    martin     tot_pass=$((tot_pass + $pass_count))
    984  1.1.1.2.6.1    martin     tot_tests=$((tot_tests + $total_tests))
    985  1.1.1.2.6.1    martin }
    986  1.1.1.2.6.1    martin 
    987          1.1  macallan while getopts "vt:me" ARG ; do
    988          1.1  macallan     case $ARG in
    989          1.1  macallan 	"v")
    990          1.1  macallan 	    unset QUIET_TEST
    991          1.1  macallan 	    ;;
    992          1.1  macallan 	"t")
    993          1.1  macallan 	    TESTSETS=$OPTARG
    994          1.1  macallan 	    ;;
    995          1.1  macallan 	"m")
    996          1.1  macallan 	    VALGRIND="valgrind --tool=memcheck -q --error-exitcode=$VGCODE"
    997          1.1  macallan 	    ;;
    998          1.1  macallan 	"e")
    999          1.1  macallan 	    STOP_ON_FAIL=1
   1000          1.1  macallan 	    ;;
   1001          1.1  macallan     esac
   1002          1.1  macallan done
   1003          1.1  macallan 
   1004          1.1  macallan if [ -z "$TESTSETS" ]; then
   1005  1.1.1.2.6.1    martin     TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump fdtoverlay"
   1006  1.1.1.2.6.1    martin 
   1007  1.1.1.2.6.1    martin     # Test pylibfdt if the libfdt Python module is available.
   1008  1.1.1.2.6.1    martin     if [ -f ../pylibfdt/_libfdt.so ] || [ -f ../pylibfdt/_libfdt.cpython-3*.so ]; then
   1009  1.1.1.2.6.1    martin         TESTSETS="$TESTSETS pylibfdt"
   1010  1.1.1.2.6.1    martin     fi
   1011          1.1  macallan fi
   1012          1.1  macallan 
   1013          1.1  macallan # Make sure we don't have stale blobs lying around
   1014          1.1  macallan rm -f *.test.dtb *.test.dts
   1015          1.1  macallan 
   1016          1.1  macallan for set in $TESTSETS; do
   1017          1.1  macallan     case $set in
   1018          1.1  macallan 	"libfdt")
   1019          1.1  macallan 	    libfdt_tests
   1020          1.1  macallan 	    ;;
   1021          1.1  macallan 	"utilfdt")
   1022          1.1  macallan 	    utilfdt_tests
   1023          1.1  macallan 	    ;;
   1024          1.1  macallan 	"dtc")
   1025          1.1  macallan 	    dtc_tests
   1026          1.1  macallan 	    ;;
   1027          1.1  macallan 	"dtbs_equal")
   1028          1.1  macallan 	    dtbs_equal_tests
   1029          1.1  macallan 	    ;;
   1030          1.1  macallan 	"fdtget")
   1031          1.1  macallan 	    fdtget_tests
   1032          1.1  macallan 	    ;;
   1033          1.1  macallan 	"fdtput")
   1034          1.1  macallan 	    fdtput_tests
   1035          1.1  macallan 	    ;;
   1036          1.1  macallan 	"fdtdump")
   1037          1.1  macallan 	    fdtdump_tests
   1038          1.1  macallan 	    ;;
   1039  1.1.1.2.6.1    martin 	"pylibfdt")
   1040  1.1.1.2.6.1    martin 	    pylibfdt_tests
   1041  1.1.1.2.6.1    martin 	    ;;
   1042  1.1.1.2.6.1    martin         "fdtoverlay")
   1043  1.1.1.2.6.1    martin 	    fdtoverlay_tests
   1044  1.1.1.2.6.1    martin 	    ;;
   1045          1.1  macallan     esac
   1046          1.1  macallan done
   1047          1.1  macallan 
   1048          1.1  macallan echo "********** TEST SUMMARY"
   1049          1.1  macallan echo "*     Total testcases:	$tot_tests"
   1050          1.1  macallan echo "*                PASS:	$tot_pass"
   1051          1.1  macallan echo "*                FAIL:	$tot_fail"
   1052          1.1  macallan echo "*   Bad configuration:	$tot_config"
   1053          1.1  macallan if [ -n "$VALGRIND" ]; then
   1054          1.1  macallan     echo "*    valgrind errors:	$tot_vg"
   1055          1.1  macallan fi
   1056          1.1  macallan echo "* Strange test result:	$tot_strange"
   1057          1.1  macallan echo "**********"
   1058          1.1  macallan 
   1059  1.1.1.2.6.1    martin [ "$tot_tests" -eq "$tot_pass" ] || exit 1
   1060