Home | History | Annotate | Line # | Download | only in tests
run_tests.sh revision 1.1.1.3
      1      1.1  macallan #! /bin/sh
      2      1.1  macallan 
      3  1.1.1.3     skrll . ./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.3     skrll # stat differs between platforms
     10  1.1.1.3     skrll if [ -z "$STATSZ" ]; then
     11  1.1.1.3     skrll 	stat --version 2>/dev/null | grep -q 'GNU'
     12  1.1.1.3     skrll 	GNUSTAT=$?
     13  1.1.1.3     skrll 	if [ "$GNUSTAT" -ne 0 ]; then
     14  1.1.1.3     skrll 		# Assume BSD stat if we can't detect as GNU stat
     15  1.1.1.3     skrll 		STATSZ="stat -f %Uz"
     16  1.1.1.3     skrll 	else
     17  1.1.1.3     skrll 		STATSZ="stat -c %s"
     18  1.1.1.3     skrll 	fi
     19  1.1.1.3     skrll fi
     20  1.1.1.3     skrll 
     21  1.1.1.3     skrll # Help things find the libfdt shared object
     22  1.1.1.3     skrll export LD_LIBRARY_PATH=../libfdt
     23  1.1.1.3     skrll 
     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.3     skrll 	    elif [ "$ret" -eq $VGCODE ]; then
     95  1.1.1.3     skrll 		echo "VALGRIND ERROR"
     96  1.1.1.3     skrll 		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.3     skrll     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.3     skrll     base_run_test sh fdtdump-runtest.sh "$file" 2>/dev/null
    179  1.1.1.3     skrll }
    180  1.1.1.3     skrll 
    181  1.1.1.3     skrll run_fdtoverlay_test() {
    182  1.1.1.3     skrll     expect="$1"
    183  1.1.1.3     skrll     shift
    184  1.1.1.3     skrll     shorten_echo fdtoverlay-runtest.sh "$expect" "$@"
    185  1.1.1.3     skrll     printf ":	"
    186  1.1.1.3     skrll     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.3     skrll     # test simplified plugin syntax
    227  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o overlay_overlay_simple.dtb overlay_overlay_simple.dts
    228  1.1.1.3     skrll 
    229  1.1.1.3     skrll     # verify non-generation of local fixups
    230  1.1.1.3     skrll     run_test check_path overlay_overlay_simple.dtb not-exists "/__local_fixups__"
    231  1.1.1.3     skrll 
    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.3     skrll     # 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.3     skrll     # Without syntactic sugar
    255  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_nosugar.test.dtb overlay_overlay.dts
    256  1.1.1.3     skrll     run_test check_path overlay_overlay_nosugar.test.dtb not-exists "/__symbols__"
    257  1.1.1.3     skrll     run_test check_path overlay_overlay_nosugar.test.dtb exists "/__fixups__"
    258  1.1.1.3     skrll     run_test check_path overlay_overlay_nosugar.test.dtb exists "/__local_fixups__"
    259  1.1.1.3     skrll 
    260  1.1.1.3     skrll     # Using target-path
    261  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_bypath.test.dtb overlay_overlay_bypath.dts
    262  1.1.1.3     skrll     run_test check_path overlay_overlay_bypath.test.dtb not-exists "/__symbols__"
    263  1.1.1.3     skrll     run_test check_path overlay_overlay_bypath.test.dtb not-exists "/__fixups__"
    264  1.1.1.3     skrll     run_test check_path overlay_overlay_bypath.test.dtb exists "/__local_fixups__"
    265  1.1.1.3     skrll 
    266  1.1.1.3     skrll     # Make sure local target references are resolved and nodes are merged and that path references are not
    267  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_local_merge.test.dtb overlay_overlay_local_merge.dts
    268  1.1.1.3     skrll     run_test check_path overlay_overlay_local_merge.test.dtb exists "/fragment@0/__overlay__/new-node/new-merged-node"
    269  1.1.1.3     skrll     run_test check_path overlay_overlay_local_merge.test.dtb exists "/fragment@1/__overlay__/new-root-node"
    270  1.1.1.3     skrll 
    271  1.1.1.3     skrll     # Check building works the same as manual constructions
    272  1.1.1.3     skrll     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_nosugar.test.dtb
    273  1.1.1.3     skrll 
    274  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_manual_fixups.test.dtb overlay_overlay_manual_fixups.dts
    275  1.1.1.3     skrll     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_manual_fixups.test.dtb
    276  1.1.1.3     skrll 
    277  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_no_fixups.test.dtb overlay_overlay_no_fixups.dts
    278  1.1.1.3     skrll     run_test dtbs_equal_ordered overlay_overlay_bypath.test.dtb overlay_overlay_no_fixups.test.dtb
    279  1.1.1.3     skrll 
    280  1.1.1.3     skrll     # Check we can actually apply the result
    281  1.1.1.3     skrll     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.3     skrll     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.3     skrll     # 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.3     skrll     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.3     skrll     run_dtc_test -I dts -O dtb -o addresses2.test.dtb empty.dts
    352  1.1.1.3     skrll     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.3     skrll     for flags in default no_name_dedup; do
    358  1.1.1.3     skrll         # Sequential write tests
    359  1.1.1.3     skrll         run_test sw_tree1 fixed $flags
    360  1.1.1.3     skrll         tree1_tests sw_tree1.test.dtb
    361  1.1.1.3     skrll         tree1_tests unfinished_tree1.test.dtb
    362  1.1.1.3     skrll         run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    363  1.1.1.3     skrll         run_test sw_states
    364  1.1.1.3     skrll 
    365  1.1.1.3     skrll         # Resizing tests
    366  1.1.1.3     skrll         for mode in resize realloc newalloc; do
    367  1.1.1.3     skrll             run_test sw_tree1 $mode $flags
    368  1.1.1.3     skrll             tree1_tests sw_tree1.test.dtb
    369  1.1.1.3     skrll             tree1_tests unfinished_tree1.test.dtb
    370  1.1.1.3     skrll             run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    371  1.1.1.3     skrll         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.3     skrll     run_test rw_oom
    427  1.1.1.3     skrll 
    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.3     skrll     run_dtc_test -I dts -O dtb -o unit-addr-without-reg.dtb unit-addr-without-reg.dts
    435  1.1.1.3     skrll     run_test appendprop_addrrange unit-addr-without-reg.dtb 1 1 1
    436  1.1.1.3     skrll     run_test appendprop_addrrange unit-addr-without-reg.dtb 2 2 2
    437  1.1.1.3     skrll     run_test appendprop_addrrange unit-addr-without-reg.dtb 2 1 3
    438  1.1.1.3     skrll 
    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.3     skrll     run_test truncated_string
    442  1.1.1.3     skrll     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.3     skrll 
    470  1.1.1.3     skrll     run_test check_header test_tree1.dtb
    471  1.1.1.3     skrll 
    472  1.1.1.3     skrll     FSBASE=fs
    473  1.1.1.3     skrll     rm -rf $FSBASE
    474  1.1.1.3     skrll     mkdir -p $FSBASE
    475  1.1.1.3     skrll     run_test fs_tree1 $FSBASE/test_tree1
    476  1.1.1.3     skrll     run_dtc_test -I fs -O dts -o fs.test_tree1.test.dts $FSBASE/test_tree1
    477  1.1.1.3     skrll     run_dtc_test -I fs -O dtb -o fs.test_tree1.test.dtb $FSBASE/test_tree1
    478  1.1.1.3     skrll     run_test dtbs_equal_unordered -m fs.test_tree1.test.dtb test_tree1.dtb
    479  1.1.1.3     skrll 
    480  1.1.1.3     skrll     # check full tests
    481  1.1.1.3     skrll     for good in test_tree1.dtb; do
    482  1.1.1.3     skrll 	run_test check_full $good
    483  1.1.1.3     skrll     done
    484  1.1.1.3     skrll     for bad in truncated_property.dtb truncated_string.dtb \
    485  1.1.1.3     skrll 				      truncated_memrsv.dtb; do
    486  1.1.1.3     skrll 	run_test check_full -n $bad
    487  1.1.1.3     skrll     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.3     skrll     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.3     skrll     # Check -Odts preserving type information
    586  1.1.1.3     skrll     for tree in type-preservation.dts; do
    587  1.1.1.3     skrll         run_dtc_test -I dts -O dts -o $tree.test.dts $tree
    588  1.1.1.3     skrll         run_dtc_test -I dts -O dts $tree.test.dts
    589  1.1.1.3     skrll         run_wrap_test cmp $tree $tree.test.dts
    590  1.1.1.3     skrll     done
    591  1.1.1.3     skrll     for tree in path-references; do
    592  1.1.1.3     skrll         run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree.dts
    593  1.1.1.3     skrll         run_dtc_test -I dts -O dts -o $tree.test.dts $tree.dts
    594  1.1.1.3     skrll         run_dtc_test -I dts -O dtb -o $tree.test.dts.test.dtb $tree.test.dts
    595  1.1.1.3     skrll         run_test dtbs_equal_ordered $tree.test.dtb $tree.test.dts.test.dtb
    596  1.1.1.3     skrll     done
    597  1.1.1.3     skrll 
    598  1.1.1.3     skrll     # Check -Oyaml output
    599  1.1.1.3     skrll     if pkg-config --exists yaml-0.1; then
    600  1.1.1.3     skrll             for tree in type-preservation; do
    601  1.1.1.3     skrll                 run_dtc_test -I dts -O yaml -o $tree.test.dt.yaml $tree.dts
    602  1.1.1.3     skrll                 run_wrap_test cmp $tree.dt.yaml $tree.test.dt.yaml
    603  1.1.1.3     skrll             done
    604  1.1.1.3     skrll     fi
    605  1.1.1.3     skrll 
    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.3     skrll     # Check omit-if-no-ref functionality
    638  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o omit-no-ref.test.dtb omit-no-ref.dts
    639  1.1.1.3     skrll     run_test check_path omit-no-ref.test.dtb not-exists "/node1"
    640  1.1.1.3     skrll     run_test check_path omit-no-ref.test.dtb not-exists "/node2"
    641  1.1.1.3     skrll     run_test check_path omit-no-ref.test.dtb exists "/node3"
    642  1.1.1.3     skrll     run_test check_path omit-no-ref.test.dtb exists "/node4"
    643  1.1.1.3     skrll 
    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.3     skrll     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.3     skrll     check_tests bad-chosen.dts chosen_node_is_root
    661  1.1.1.3     skrll     check_tests bad-chosen.dts chosen_node_bootargs
    662  1.1.1.3     skrll     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.3     skrll     check_tests unit-addr-leading-0x.dts unit_address_format
    671  1.1.1.3     skrll     check_tests unit-addr-leading-0s.dts unit_address_format
    672  1.1.1.3     skrll     check_tests unit-addr-unique.dts unique_unit_address
    673  1.1.1.3     skrll     check_tests bad-phandle-cells.dts interrupts_extended_property
    674  1.1.1.3     skrll     check_tests bad-gpio.dts gpios_property
    675  1.1.1.3     skrll     check_tests bad-graph.dts graph_child_address
    676  1.1.1.3     skrll     check_tests bad-graph.dts graph_port
    677  1.1.1.3     skrll     check_tests bad-graph.dts graph_endpoint
    678  1.1.1.3     skrll     run_sh_test dtc-checkfails.sh deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb bad-gpio.dts
    679  1.1.1.3     skrll     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.3     skrll     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.3     skrll     check_tests pci-bridge-ok.dts -n pci_bridge
    695  1.1.1.3     skrll     check_tests pci-bridge-bad1.dts pci_bridge
    696  1.1.1.3     skrll     check_tests pci-bridge-bad2.dts pci_bridge
    697  1.1.1.3     skrll 
    698  1.1.1.3     skrll     check_tests unit-addr-simple-bus-reg-mismatch.dts simple_bus_reg
    699  1.1.1.3     skrll     check_tests unit-addr-simple-bus-compatible.dts simple_bus_reg
    700  1.1.1.3     skrll 
    701  1.1.1.3     skrll 
    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.3     skrll 	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.3     skrll 	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.3     skrll     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.3     skrll     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.3     skrll     # 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.3     skrll     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.3     skrll fdtoverlay_tests() {
    918  1.1.1.3     skrll     base=overlay_base.dts
    919  1.1.1.3     skrll     basedtb=overlay_base.fdoverlay.test.dtb
    920  1.1.1.3     skrll     overlay=overlay_overlay_manual_fixups.dts
    921  1.1.1.3     skrll     overlaydtb=overlay_overlay_manual_fixups.fdoverlay.test.dtb
    922  1.1.1.3     skrll     targetdtb=target.fdoverlay.test.dtb
    923  1.1.1.3     skrll 
    924  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $basedtb $base
    925  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $overlaydtb $overlay
    926  1.1.1.3     skrll 
    927  1.1.1.3     skrll     # test that the new property is installed
    928  1.1.1.3     skrll     run_fdtoverlay_test foobar "/test-node" "test-str-property" "-ts" ${basedtb} ${targetdtb} ${overlaydtb}
    929  1.1.1.3     skrll 
    930  1.1.1.3     skrll     stacked_base=stacked_overlay_base.dts
    931  1.1.1.3     skrll     stacked_basedtb=stacked_overlay_base.fdtoverlay.test.dtb
    932  1.1.1.3     skrll     stacked_bar=stacked_overlay_bar.dts
    933  1.1.1.3     skrll     stacked_bardtb=stacked_overlay_bar.fdtoverlay.test.dtb
    934  1.1.1.3     skrll     stacked_baz=stacked_overlay_baz.dts
    935  1.1.1.3     skrll     stacked_bazdtb=stacked_overlay_baz.fdtoverlay.test.dtb
    936  1.1.1.3     skrll     stacked_targetdtb=stacked_overlay_target.fdtoverlay.test.dtb
    937  1.1.1.3     skrll 
    938  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $stacked_basedtb $stacked_base
    939  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $stacked_bardtb $stacked_bar
    940  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $stacked_bazdtb $stacked_baz
    941  1.1.1.3     skrll 
    942  1.1.1.3     skrll     # test that baz correctly inserted the property
    943  1.1.1.3     skrll     run_fdtoverlay_test baz "/foonode/barnode/baznode" "baz-property" "-ts" ${stacked_basedtb} ${stacked_targetdtb} ${stacked_bardtb} ${stacked_bazdtb}
    944  1.1.1.3     skrll 
    945  1.1.1.3     skrll     overlay_long_path=overlay_overlay_long_path.dts
    946  1.1.1.3     skrll     overlay_long_pathdtb=overlay_overlay_long_path.fdoverlay.test.dtb
    947  1.1.1.3     skrll     target_long_pathdtb=overlay_overlay_long_path_target.fdoverlay.test.dtb
    948  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $overlay_long_pathdtb $overlay_long_path
    949  1.1.1.3     skrll 
    950  1.1.1.3     skrll     # test that fdtoverlay manages to apply overlays with long target path
    951  1.1.1.3     skrll     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.3     skrll 
    953  1.1.1.3     skrll     # test adding a label to the root of a fragment
    954  1.1.1.3     skrll     stacked_base_nolabel=stacked_overlay_base_nolabel.dts
    955  1.1.1.3     skrll     stacked_base_nolabeldtb=stacked_overlay_base_nolabel.test.dtb
    956  1.1.1.3     skrll     stacked_addlabel=stacked_overlay_addlabel.dts
    957  1.1.1.3     skrll     stacked_addlabeldtb=stacked_overlay_addlabel.test.dtb
    958  1.1.1.3     skrll     stacked_addlabel_targetdtb=stacked_overlay_target_nolabel.fdtoverlay.test.dtb
    959  1.1.1.3     skrll 
    960  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $stacked_base_nolabeldtb $stacked_base_nolabel
    961  1.1.1.3     skrll     run_dtc_test -@ -I dts -O dtb -o $stacked_addlabeldtb $stacked_addlabel
    962  1.1.1.3     skrll 
    963  1.1.1.3     skrll     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.3     skrll }
    965  1.1.1.3     skrll 
    966  1.1.1.3     skrll pylibfdt_tests () {
    967  1.1.1.3     skrll     run_dtc_test -I dts -O dtb -o test_props.dtb test_props.dts
    968  1.1.1.3     skrll     TMP=/tmp/tests.stderr.$$
    969  1.1.1.3     skrll     $PYTHON pylibfdt_tests.py -v 2> $TMP
    970  1.1.1.3     skrll 
    971  1.1.1.3     skrll     # Use the 'ok' message meaning the test passed, 'ERROR' meaning it failed
    972  1.1.1.3     skrll     # and the summary line for total tests (e.g. 'Ran 17 tests in 0.002s').
    973  1.1.1.3     skrll     # We could add pass + fail to get total tests, but this provides a useful
    974  1.1.1.3     skrll     # sanity check.
    975  1.1.1.3     skrll     pass_count=$(grep "ok$" $TMP | wc -l)
    976  1.1.1.3     skrll     fail_count=$(grep "^ERROR: " $TMP | wc -l)
    977  1.1.1.3     skrll     total_tests=$(sed -n 's/^Ran \([0-9]*\) tests.*$/\1/p' $TMP)
    978  1.1.1.3     skrll     cat $TMP
    979  1.1.1.3     skrll     rm $TMP
    980  1.1.1.3     skrll 
    981  1.1.1.3     skrll     # Extract the test results and add them to our totals
    982  1.1.1.3     skrll     tot_fail=$((tot_fail + $fail_count))
    983  1.1.1.3     skrll     tot_pass=$((tot_pass + $pass_count))
    984  1.1.1.3     skrll     tot_tests=$((tot_tests + $total_tests))
    985  1.1.1.3     skrll }
    986  1.1.1.3     skrll 
    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.3     skrll     TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump fdtoverlay"
   1006  1.1.1.3     skrll 
   1007  1.1.1.3     skrll     # Test pylibfdt if the libfdt Python module is available.
   1008  1.1.1.3     skrll     if [ -f ../pylibfdt/_libfdt.so ] || [ -f ../pylibfdt/_libfdt.cpython-3*.so ]; then
   1009  1.1.1.3     skrll         TESTSETS="$TESTSETS pylibfdt"
   1010  1.1.1.3     skrll     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.3     skrll 	"pylibfdt")
   1040  1.1.1.3     skrll 	    pylibfdt_tests
   1041  1.1.1.3     skrll 	    ;;
   1042  1.1.1.3     skrll         "fdtoverlay")
   1043  1.1.1.3     skrll 	    fdtoverlay_tests
   1044  1.1.1.3     skrll 	    ;;
   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.3     skrll [ "$tot_tests" -eq "$tot_pass" ] || exit 1
   1060