Home | History | Annotate | Line # | Download | only in tests
run_tests.sh revision 1.1.1.2
      1      1.1  macallan #! /bin/sh
      2      1.1  macallan 
      3      1.1  macallan . ./tests.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  macallan export QUIET_TEST=1
     10      1.1  macallan STOP_ON_FAIL=0
     11      1.1  macallan 
     12      1.1  macallan export VALGRIND=
     13      1.1  macallan VGCODE=126
     14      1.1  macallan 
     15      1.1  macallan tot_tests=0
     16      1.1  macallan tot_pass=0
     17      1.1  macallan tot_fail=0
     18      1.1  macallan tot_config=0
     19      1.1  macallan tot_vg=0
     20      1.1  macallan tot_strange=0
     21      1.1  macallan 
     22      1.1  macallan base_run_test() {
     23      1.1  macallan     tot_tests=$((tot_tests + 1))
     24      1.1  macallan     if VALGRIND="$VALGRIND" "$@"; then
     25      1.1  macallan 	tot_pass=$((tot_pass + 1))
     26      1.1  macallan     else
     27      1.1  macallan 	ret="$?"
     28      1.1  macallan 	if [ "$STOP_ON_FAIL" -eq 1 ]; then
     29      1.1  macallan 	    exit 1
     30      1.1  macallan 	fi
     31      1.1  macallan 	if [ "$ret" -eq 1 ]; then
     32      1.1  macallan 	    tot_config=$((tot_config + 1))
     33      1.1  macallan 	elif [ "$ret" -eq 2 ]; then
     34      1.1  macallan 	    tot_fail=$((tot_fail + 1))
     35      1.1  macallan 	elif [ "$ret" -eq $VGCODE ]; then
     36      1.1  macallan 	    tot_vg=$((tot_vg + 1))
     37      1.1  macallan 	else
     38      1.1  macallan 	    tot_strange=$((tot_strange + 1))
     39      1.1  macallan 	fi
     40      1.1  macallan     fi
     41      1.1  macallan }
     42      1.1  macallan 
     43      1.1  macallan shorten_echo () {
     44      1.1  macallan     limit=32
     45      1.1  macallan     printf "$1"
     46      1.1  macallan     shift
     47      1.1  macallan     for x; do
     48      1.1  macallan 	if [ ${#x} -le $limit ]; then
     49      1.1  macallan 	    printf " $x"
     50      1.1  macallan 	else
     51      1.1  macallan 	    short=$(echo "$x" | head -c$limit)
     52      1.1  macallan 	    printf " \"$short\"...<${#x} bytes>"
     53      1.1  macallan 	fi
     54      1.1  macallan     done
     55      1.1  macallan }
     56      1.1  macallan 
     57      1.1  macallan run_test () {
     58      1.1  macallan     printf "$*:	"
     59      1.1  macallan     if [ -n "$VALGRIND" -a -f $1.supp ]; then
     60      1.1  macallan 	VGSUPP="--suppressions=$1.supp"
     61      1.1  macallan     fi
     62      1.1  macallan     base_run_test $VALGRIND $VGSUPP "./$@"
     63      1.1  macallan }
     64      1.1  macallan 
     65      1.1  macallan run_sh_test () {
     66      1.1  macallan     printf "$*:	"
     67      1.1  macallan     base_run_test sh "$@"
     68      1.1  macallan }
     69      1.1  macallan 
     70      1.1  macallan wrap_test () {
     71      1.1  macallan     (
     72      1.1  macallan 	if verbose_run "$@"; then
     73      1.1  macallan 	    PASS
     74      1.1  macallan 	else
     75      1.1  macallan 	    ret="$?"
     76      1.1  macallan 	    if [ "$ret" -gt 127 ]; then
     77      1.1  macallan 		signame=$(kill -l $((ret - 128)))
     78      1.1  macallan 		FAIL "Killed by SIG$signame"
     79      1.1  macallan 	    else
     80      1.1  macallan 		FAIL "Returned error code $ret"
     81      1.1  macallan 	    fi
     82      1.1  macallan 	fi
     83      1.1  macallan     )
     84      1.1  macallan }
     85      1.1  macallan 
     86      1.1  macallan run_wrap_test () {
     87      1.1  macallan     shorten_echo "$@:	"
     88      1.1  macallan     base_run_test wrap_test "$@"
     89      1.1  macallan }
     90      1.1  macallan 
     91      1.1  macallan wrap_error () {
     92      1.1  macallan     (
     93      1.1  macallan 	if verbose_run "$@"; then
     94      1.1  macallan 	    FAIL "Expected non-zero return code"
     95      1.1  macallan 	else
     96      1.1  macallan 	    ret="$?"
     97      1.1  macallan 	    if [ "$ret" -gt 127 ]; then
     98      1.1  macallan 		signame=$(kill -l $((ret - 128)))
     99      1.1  macallan 		FAIL "Killed by SIG$signame"
    100      1.1  macallan 	    else
    101      1.1  macallan 		PASS
    102      1.1  macallan 	    fi
    103      1.1  macallan 	fi
    104      1.1  macallan     )
    105      1.1  macallan }
    106      1.1  macallan 
    107      1.1  macallan run_wrap_error_test () {
    108      1.1  macallan     shorten_echo "$@"
    109      1.1  macallan     printf " {!= 0}:	"
    110      1.1  macallan     base_run_test wrap_error "$@"
    111      1.1  macallan }
    112      1.1  macallan 
    113  1.1.1.2     skrll # $1: dtb file
    114  1.1.1.2     skrll # $2: align base
    115  1.1.1.2     skrll check_align () {
    116  1.1.1.2     skrll     shorten_echo "check_align $@:	"
    117  1.1.1.2     skrll     local size=$(stat -c %s "$1")
    118  1.1.1.2     skrll     local align="$2"
    119  1.1.1.2     skrll     (
    120  1.1.1.2     skrll 	if [ $(($size % $align)) -eq 0 ] ;then
    121  1.1.1.2     skrll 	    PASS
    122  1.1.1.2     skrll 	else
    123  1.1.1.2     skrll 	    FAIL "Output size $size is not $align-byte aligned"
    124  1.1.1.2     skrll 	fi
    125  1.1.1.2     skrll     )
    126  1.1.1.2     skrll }
    127  1.1.1.2     skrll 
    128      1.1  macallan run_dtc_test () {
    129      1.1  macallan     printf "dtc $*:	"
    130      1.1  macallan     base_run_test wrap_test $VALGRIND $DTC "$@"
    131      1.1  macallan }
    132      1.1  macallan 
    133      1.1  macallan asm_to_so () {
    134      1.1  macallan     $CC -shared -o $1.test.so data.S $1.test.s
    135      1.1  macallan }
    136      1.1  macallan 
    137      1.1  macallan asm_to_so_test () {
    138      1.1  macallan     run_wrap_test asm_to_so "$@"
    139      1.1  macallan }
    140      1.1  macallan 
    141      1.1  macallan run_fdtget_test () {
    142      1.1  macallan     expect="$1"
    143      1.1  macallan     shift
    144      1.1  macallan     printf "fdtget-runtest.sh %s $*:	" "$(echo $expect)"
    145      1.1  macallan     base_run_test sh fdtget-runtest.sh "$expect" "$@"
    146      1.1  macallan }
    147      1.1  macallan 
    148      1.1  macallan run_fdtput_test () {
    149      1.1  macallan     expect="$1"
    150      1.1  macallan     shift
    151      1.1  macallan     shorten_echo fdtput-runtest.sh "$expect" "$@"
    152      1.1  macallan     printf ":	"
    153      1.1  macallan     base_run_test sh fdtput-runtest.sh "$expect" "$@"
    154      1.1  macallan }
    155      1.1  macallan 
    156      1.1  macallan run_fdtdump_test() {
    157      1.1  macallan     file="$1"
    158      1.1  macallan     shorten_echo fdtdump-runtest.sh "$file"
    159      1.1  macallan     printf ":	"
    160      1.1  macallan     base_run_test sh fdtdump-runtest.sh "$file"
    161      1.1  macallan }
    162      1.1  macallan 
    163  1.1.1.2     skrll BAD_FIXUP_TREES="bad_index \
    164  1.1.1.2     skrll 		empty \
    165  1.1.1.2     skrll 		empty_index \
    166  1.1.1.2     skrll 		index_trailing \
    167  1.1.1.2     skrll 		path_empty_prop \
    168  1.1.1.2     skrll 		path_only \
    169  1.1.1.2     skrll 		path_only_sep \
    170  1.1.1.2     skrll 		path_prop"
    171  1.1.1.2     skrll 
    172  1.1.1.2     skrll # Test to exercise libfdt overlay application without dtc's overlay support
    173  1.1.1.2     skrll libfdt_overlay_tests () {
    174  1.1.1.2     skrll     # First test a doctored overlay which requires only local fixups
    175  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_base_no_symbols.test.dtb overlay_base.dts
    176  1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__symbols__"
    177  1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__fixups__"
    178  1.1.1.2     skrll     run_test check_path overlay_base_no_symbols.test.dtb not-exists "/__local_fixups__"
    179  1.1.1.2     skrll 
    180  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_no_fixups.test.dtb overlay_overlay_no_fixups.dts
    181  1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb not-exists "/__symbols__"
    182  1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb not-exists "/__fixups__"
    183  1.1.1.2     skrll     run_test check_path overlay_overlay_no_fixups.test.dtb exists "/__local_fixups__"
    184  1.1.1.2     skrll 
    185  1.1.1.2     skrll     run_test overlay overlay_base_no_symbols.test.dtb overlay_overlay_no_fixups.test.dtb
    186  1.1.1.2     skrll 
    187  1.1.1.2     skrll     # Then test with manually constructed fixups
    188  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_base_manual_symbols.test.dtb overlay_base_manual_symbols.dts
    189  1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb exists "/__symbols__"
    190  1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb not-exists "/__fixups__"
    191  1.1.1.2     skrll     run_test check_path overlay_base_manual_symbols.test.dtb not-exists "/__local_fixups__"
    192  1.1.1.2     skrll 
    193  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_manual_fixups.test.dtb overlay_overlay_manual_fixups.dts
    194  1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb not-exists "/__symbols__"
    195  1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb exists "/__fixups__"
    196  1.1.1.2     skrll     run_test check_path overlay_overlay_manual_fixups.test.dtb exists "/__local_fixups__"
    197  1.1.1.2     skrll 
    198  1.1.1.2     skrll     run_test overlay overlay_base_manual_symbols.test.dtb overlay_overlay_manual_fixups.test.dtb
    199  1.1.1.2     skrll 
    200  1.1.1.2     skrll     # Bad fixup tests
    201  1.1.1.2     skrll     for test in $BAD_FIXUP_TREES; do
    202  1.1.1.2     skrll 	tree="overlay_bad_fixup_$test"
    203  1.1.1.2     skrll 	run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree.dts
    204  1.1.1.2     skrll 	run_test overlay_bad_fixup overlay_base_no_symbols.test.dtb $tree.test.dtb
    205  1.1.1.2     skrll     done
    206  1.1.1.2     skrll }
    207  1.1.1.2     skrll 
    208  1.1.1.2     skrll # Tests to exercise dtc's overlay generation support
    209  1.1.1.2     skrll dtc_overlay_tests () {
    210  1.1.1.2     skrll     # Overlay tests for dtc
    211  1.1.1.2     skrll     run_dtc_test -@ -I dts -O dtb -o overlay_base.test.dtb overlay_base.dts
    212  1.1.1.2     skrll     run_test check_path overlay_base.test.dtb exists "/__symbols__"
    213  1.1.1.2     skrll     run_test check_path overlay_base.test.dtb not-exists "/__fixups__"
    214  1.1.1.2     skrll     run_test check_path overlay_base.test.dtb not-exists "/__local_fixups__"
    215  1.1.1.2     skrll 
    216  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay.test.dtb overlay_overlay.dts
    217  1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb not-exists "/__symbols__"
    218  1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb exists "/__fixups__"
    219  1.1.1.2     skrll     run_test check_path overlay_overlay.test.dtb exists "/__local_fixups__"
    220  1.1.1.2     skrll 
    221  1.1.1.2     skrll     run_test overlay overlay_base.test.dtb overlay_overlay.test.dtb
    222  1.1.1.2     skrll 
    223  1.1.1.2     skrll     # test plugin source to dtb and back
    224  1.1.1.2     skrll     run_dtc_test -I dtb -O dts -o overlay_overlay_decompile.test.dts overlay_overlay.test.dtb
    225  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o overlay_overlay_decompile.test.dtb overlay_overlay_decompile.test.dts
    226  1.1.1.2     skrll     run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_decompile.test.dtb
    227  1.1.1.2     skrll 
    228  1.1.1.2     skrll     # Test generation of aliases insted of symbols
    229  1.1.1.2     skrll     run_dtc_test -A -I dts -O dtb -o overlay_base_with_aliases.dtb overlay_base.dts
    230  1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb exists "/aliases"
    231  1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__symbols__"
    232  1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__fixups__"
    233  1.1.1.2     skrll     run_test check_path overlay_base_with_aliases.dtb not-exists "/__local_fixups__"
    234  1.1.1.2     skrll }
    235  1.1.1.2     skrll 
    236      1.1  macallan tree1_tests () {
    237      1.1  macallan     TREE=$1
    238      1.1  macallan 
    239      1.1  macallan     # Read-only tests
    240      1.1  macallan     run_test get_mem_rsv $TREE
    241      1.1  macallan     run_test root_node $TREE
    242      1.1  macallan     run_test find_property $TREE
    243      1.1  macallan     run_test subnode_offset $TREE
    244      1.1  macallan     run_test path_offset $TREE
    245      1.1  macallan     run_test get_name $TREE
    246      1.1  macallan     run_test getprop $TREE
    247      1.1  macallan     run_test get_phandle $TREE
    248      1.1  macallan     run_test get_path $TREE
    249      1.1  macallan     run_test supernode_atdepth_offset $TREE
    250      1.1  macallan     run_test parent_offset $TREE
    251      1.1  macallan     run_test node_offset_by_prop_value $TREE
    252      1.1  macallan     run_test node_offset_by_phandle $TREE
    253      1.1  macallan     run_test node_check_compatible $TREE
    254      1.1  macallan     run_test node_offset_by_compatible $TREE
    255      1.1  macallan     run_test notfound $TREE
    256      1.1  macallan 
    257      1.1  macallan     # Write-in-place tests
    258      1.1  macallan     run_test setprop_inplace $TREE
    259      1.1  macallan     run_test nop_property $TREE
    260      1.1  macallan     run_test nop_node $TREE
    261      1.1  macallan }
    262      1.1  macallan 
    263      1.1  macallan tree1_tests_rw () {
    264      1.1  macallan     TREE=$1
    265      1.1  macallan 
    266      1.1  macallan     # Read-write tests
    267      1.1  macallan     run_test set_name $TREE
    268      1.1  macallan     run_test setprop $TREE
    269      1.1  macallan     run_test del_property $TREE
    270      1.1  macallan     run_test del_node $TREE
    271      1.1  macallan }
    272      1.1  macallan 
    273      1.1  macallan check_tests () {
    274      1.1  macallan     tree="$1"
    275      1.1  macallan     shift
    276      1.1  macallan     run_sh_test dtc-checkfails.sh "$@" -- -I dts -O dtb $tree
    277      1.1  macallan     run_dtc_test -I dts -O dtb -o $tree.test.dtb -f $tree
    278      1.1  macallan     run_sh_test dtc-checkfails.sh "$@" -- -I dtb -O dtb $tree.test.dtb
    279      1.1  macallan }
    280      1.1  macallan 
    281      1.1  macallan ALL_LAYOUTS="mts mst tms tsm smt stm"
    282      1.1  macallan 
    283      1.1  macallan libfdt_tests () {
    284      1.1  macallan     tree1_tests test_tree1.dtb
    285      1.1  macallan 
    286      1.1  macallan     run_dtc_test -I dts -O dtb -o addresses.test.dtb addresses.dts
    287      1.1  macallan     run_test addr_size_cells addresses.test.dtb
    288      1.1  macallan 
    289      1.1  macallan     run_dtc_test -I dts -O dtb -o stringlist.test.dtb stringlist.dts
    290      1.1  macallan     run_test stringlist stringlist.test.dtb
    291      1.1  macallan 
    292      1.1  macallan     # Sequential write tests
    293      1.1  macallan     run_test sw_tree1
    294      1.1  macallan     tree1_tests sw_tree1.test.dtb
    295      1.1  macallan     tree1_tests unfinished_tree1.test.dtb
    296      1.1  macallan     run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    297      1.1  macallan 
    298      1.1  macallan     # Resizing tests
    299      1.1  macallan     for mode in resize realloc; do
    300      1.1  macallan 	run_test sw_tree1 $mode
    301      1.1  macallan 	tree1_tests sw_tree1.test.dtb
    302      1.1  macallan 	tree1_tests unfinished_tree1.test.dtb
    303      1.1  macallan 	run_test dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb
    304      1.1  macallan     done
    305      1.1  macallan 
    306      1.1  macallan     # fdt_move tests
    307      1.1  macallan     for tree in test_tree1.dtb sw_tree1.test.dtb unfinished_tree1.test.dtb; do
    308      1.1  macallan 	rm -f moved.$tree shunted.$tree deshunted.$tree
    309      1.1  macallan 	run_test move_and_save $tree
    310      1.1  macallan 	run_test dtbs_equal_ordered $tree moved.$tree
    311      1.1  macallan 	run_test dtbs_equal_ordered $tree shunted.$tree
    312      1.1  macallan 	run_test dtbs_equal_ordered $tree deshunted.$tree
    313      1.1  macallan     done
    314      1.1  macallan 
    315      1.1  macallan     # v16 and alternate layout tests
    316      1.1  macallan     for tree in test_tree1.dtb; do
    317      1.1  macallan 	for version in 17 16; do
    318      1.1  macallan 	    for layout in $ALL_LAYOUTS; do
    319      1.1  macallan 		run_test mangle-layout $tree $version $layout
    320      1.1  macallan 		tree1_tests v$version.$layout.$tree
    321      1.1  macallan 		run_test dtbs_equal_ordered $tree v$version.$layout.$tree
    322      1.1  macallan 	    done
    323      1.1  macallan 	done
    324      1.1  macallan     done
    325      1.1  macallan 
    326      1.1  macallan     # Read-write tests
    327      1.1  macallan     for basetree in test_tree1.dtb; do
    328      1.1  macallan 	for version in 17 16; do
    329      1.1  macallan 	    for layout in $ALL_LAYOUTS; do
    330      1.1  macallan 		tree=v$version.$layout.$basetree
    331      1.1  macallan 		rm -f opened.$tree repacked.$tree
    332      1.1  macallan 		run_test open_pack $tree
    333      1.1  macallan 		tree1_tests opened.$tree
    334      1.1  macallan 		tree1_tests repacked.$tree
    335      1.1  macallan 
    336      1.1  macallan 		tree1_tests_rw $tree
    337      1.1  macallan 		tree1_tests_rw opened.$tree
    338      1.1  macallan 		tree1_tests_rw repacked.$tree
    339      1.1  macallan 	    done
    340      1.1  macallan 	done
    341      1.1  macallan     done
    342      1.1  macallan     run_test rw_tree1
    343      1.1  macallan     tree1_tests rw_tree1.test.dtb
    344      1.1  macallan     tree1_tests_rw rw_tree1.test.dtb
    345      1.1  macallan     run_test appendprop1
    346      1.1  macallan     run_test appendprop2 appendprop1.test.dtb
    347      1.1  macallan     run_dtc_test -I dts -O dtb -o appendprop.test.dtb appendprop.dts
    348      1.1  macallan     run_test dtbs_equal_ordered appendprop2.test.dtb appendprop.test.dtb
    349  1.1.1.2     skrll     libfdt_overlay_tests
    350      1.1  macallan 
    351      1.1  macallan     for basetree in test_tree1.dtb sw_tree1.test.dtb rw_tree1.test.dtb; do
    352      1.1  macallan 	run_test nopulate $basetree
    353      1.1  macallan 	run_test dtbs_equal_ordered $basetree noppy.$basetree
    354      1.1  macallan 	tree1_tests noppy.$basetree
    355      1.1  macallan 	tree1_tests_rw noppy.$basetree
    356      1.1  macallan     done
    357      1.1  macallan 
    358      1.1  macallan     run_dtc_test -I dts -O dtb -o subnode_iterate.dtb subnode_iterate.dts
    359      1.1  macallan     run_test subnode_iterate subnode_iterate.dtb
    360      1.1  macallan 
    361  1.1.1.2     skrll     run_dtc_test -I dts -O dtb -o property_iterate.dtb property_iterate.dts
    362  1.1.1.2     skrll     run_test property_iterate property_iterate.dtb
    363  1.1.1.2     skrll 
    364      1.1  macallan     # Tests for behaviour on various sorts of corrupted trees
    365      1.1  macallan     run_test truncated_property
    366      1.1  macallan 
    367      1.1  macallan     # Check aliases support in fdt_path_offset
    368      1.1  macallan     run_dtc_test -I dts -O dtb -o aliases.dtb aliases.dts
    369      1.1  macallan     run_test get_alias aliases.dtb
    370      1.1  macallan     run_test path_offset_aliases aliases.dtb
    371      1.1  macallan 
    372      1.1  macallan     # Specific bug tests
    373      1.1  macallan     run_test add_subnode_with_nops
    374      1.1  macallan     run_dtc_test -I dts -O dts -o sourceoutput.test.dts sourceoutput.dts
    375      1.1  macallan     run_dtc_test -I dts -O dtb -o sourceoutput.test.dtb sourceoutput.dts
    376      1.1  macallan     run_dtc_test -I dts -O dtb -o sourceoutput.test.dts.test.dtb sourceoutput.test.dts
    377      1.1  macallan     run_test dtbs_equal_ordered sourceoutput.test.dtb sourceoutput.test.dts.test.dtb
    378      1.1  macallan 
    379      1.1  macallan     run_dtc_test -I dts -O dtb -o embedded_nul.test.dtb embedded_nul.dts
    380      1.1  macallan     run_dtc_test -I dts -O dtb -o embedded_nul_equiv.test.dtb embedded_nul_equiv.dts
    381      1.1  macallan     run_test dtbs_equal_ordered embedded_nul.test.dtb embedded_nul_equiv.test.dtb
    382      1.1  macallan 
    383      1.1  macallan     run_dtc_test -I dts -O dtb bad-size-cells.dts
    384  1.1.1.2     skrll 
    385  1.1.1.2     skrll     run_wrap_error_test $DTC division-by-zero.dts
    386  1.1.1.2     skrll     run_wrap_error_test $DTC bad-octal-literal.dts
    387  1.1.1.2     skrll     run_dtc_test -I dts -O dtb nul-in-escape.dts
    388  1.1.1.2     skrll     run_wrap_error_test $DTC nul-in-line-info1.dts
    389  1.1.1.2     skrll     run_wrap_error_test $DTC nul-in-line-info2.dts
    390  1.1.1.2     skrll 
    391  1.1.1.2     skrll     run_wrap_error_test $DTC -I dtb -O dts -o /dev/null ovf_size_strings.dtb
    392      1.1  macallan }
    393      1.1  macallan 
    394      1.1  macallan dtc_tests () {
    395      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1.test.dtb test_tree1.dts
    396      1.1  macallan     tree1_tests dtc_tree1.test.dtb
    397      1.1  macallan     tree1_tests_rw dtc_tree1.test.dtb
    398      1.1  macallan     run_test dtbs_equal_ordered dtc_tree1.test.dtb test_tree1.dtb
    399      1.1  macallan 
    400      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_escapes.test.dtb propname_escapes.dts
    401      1.1  macallan     run_test propname_escapes dtc_escapes.test.dtb
    402      1.1  macallan 
    403      1.1  macallan     run_dtc_test -I dts -O dtb -o line_directives.test.dtb line_directives.dts
    404      1.1  macallan 
    405      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_escapes.test.dtb escapes.dts
    406      1.1  macallan     run_test string_escapes dtc_escapes.test.dtb
    407      1.1  macallan 
    408      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_char_literal.test.dtb char_literal.dts
    409      1.1  macallan     run_test char_literal dtc_char_literal.test.dtb
    410      1.1  macallan 
    411      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_sized_cells.test.dtb sized_cells.dts
    412      1.1  macallan     run_test sized_cells dtc_sized_cells.test.dtb
    413      1.1  macallan 
    414      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_extra-terminating-null.test.dtb extra-terminating-null.dts
    415      1.1  macallan     run_test extra-terminating-null dtc_extra-terminating-null.test.dtb
    416      1.1  macallan 
    417      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_references.test.dtb references.dts
    418      1.1  macallan     run_test references dtc_references.test.dtb
    419      1.1  macallan 
    420      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_path-references.test.dtb path-references.dts
    421      1.1  macallan     run_test path-references dtc_path-references.test.dtb
    422      1.1  macallan 
    423      1.1  macallan     run_test phandle_format dtc_references.test.dtb both
    424      1.1  macallan     for f in legacy epapr both; do
    425      1.1  macallan 	run_dtc_test -I dts -O dtb -H $f -o dtc_references.test.$f.dtb references.dts
    426      1.1  macallan 	run_test phandle_format dtc_references.test.$f.dtb $f
    427      1.1  macallan     done
    428      1.1  macallan 
    429      1.1  macallan     run_dtc_test -I dts -O dtb -o multilabel.test.dtb multilabel.dts
    430      1.1  macallan     run_test references multilabel.test.dtb
    431      1.1  macallan 
    432      1.1  macallan     run_dtc_test -I dts -O dtb -o label_repeated.test.dtb label_repeated.dts
    433      1.1  macallan 
    434      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_comments.test.dtb comments.dts
    435      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_comments-cmp.test.dtb comments-cmp.dts
    436      1.1  macallan     run_test dtbs_equal_ordered dtc_comments.test.dtb dtc_comments-cmp.test.dtb
    437      1.1  macallan 
    438      1.1  macallan     # Check /include/ directive
    439      1.1  macallan     run_dtc_test -I dts -O dtb -o includes.test.dtb include0.dts
    440      1.1  macallan     run_test dtbs_equal_ordered includes.test.dtb test_tree1.dtb
    441      1.1  macallan 
    442      1.1  macallan     # Check /incbin/ directive
    443      1.1  macallan     run_dtc_test -I dts -O dtb -o incbin.test.dtb incbin.dts
    444      1.1  macallan     run_test incbin incbin.test.dtb
    445      1.1  macallan 
    446      1.1  macallan     # Check boot_cpuid_phys handling
    447      1.1  macallan     run_dtc_test -I dts -O dtb -o boot_cpuid.test.dtb boot-cpuid.dts
    448      1.1  macallan     run_test boot-cpuid boot_cpuid.test.dtb 16
    449      1.1  macallan 
    450      1.1  macallan     run_dtc_test -I dts -O dtb -b 17 -o boot_cpuid_17.test.dtb boot-cpuid.dts
    451      1.1  macallan     run_test boot-cpuid boot_cpuid_17.test.dtb 17
    452      1.1  macallan 
    453      1.1  macallan     run_dtc_test -I dtb -O dtb -o preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb
    454      1.1  macallan     run_test boot-cpuid preserve_boot_cpuid.test.dtb 16
    455      1.1  macallan     run_test dtbs_equal_ordered preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb
    456      1.1  macallan 
    457      1.1  macallan     run_dtc_test -I dtb -O dtb -o preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    458      1.1  macallan     run_test boot-cpuid preserve_boot_cpuid_17.test.dtb 17
    459      1.1  macallan     run_test dtbs_equal_ordered preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    460      1.1  macallan 
    461      1.1  macallan     run_dtc_test -I dtb -O dtb -b17 -o override17_boot_cpuid.test.dtb boot_cpuid.test.dtb
    462      1.1  macallan     run_test boot-cpuid override17_boot_cpuid.test.dtb 17
    463      1.1  macallan 
    464      1.1  macallan     run_dtc_test -I dtb -O dtb -b0 -o override0_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb
    465      1.1  macallan     run_test boot-cpuid override0_boot_cpuid_17.test.dtb 0
    466      1.1  macallan 
    467      1.1  macallan 
    468      1.1  macallan     # Check -Oasm mode
    469      1.1  macallan     for tree in test_tree1.dts escapes.dts references.dts path-references.dts \
    470      1.1  macallan 	comments.dts aliases.dts include0.dts incbin.dts \
    471      1.1  macallan 	value-labels.dts ; do
    472      1.1  macallan 	run_dtc_test -I dts -O asm -o oasm_$tree.test.s $tree
    473      1.1  macallan 	asm_to_so_test oasm_$tree
    474      1.1  macallan 	run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree
    475      1.1  macallan 	run_test asm_tree_dump ./oasm_$tree.test.so oasm_$tree.test.dtb
    476      1.1  macallan 	run_wrap_test cmp oasm_$tree.test.dtb $tree.test.dtb
    477      1.1  macallan     done
    478      1.1  macallan 
    479      1.1  macallan     run_test value-labels ./oasm_value-labels.dts.test.so
    480      1.1  macallan 
    481      1.1  macallan     # Check -Odts mode preserve all dtb information
    482      1.1  macallan     for tree in test_tree1.dtb dtc_tree1.test.dtb dtc_escapes.test.dtb \
    483      1.1  macallan 	dtc_extra-terminating-null.test.dtb dtc_references.test.dtb; do
    484      1.1  macallan 	run_dtc_test -I dtb -O dts -o odts_$tree.test.dts $tree
    485      1.1  macallan 	run_dtc_test -I dts -O dtb -o odts_$tree.test.dtb odts_$tree.test.dts
    486      1.1  macallan 	run_test dtbs_equal_ordered $tree odts_$tree.test.dtb
    487      1.1  macallan     done
    488      1.1  macallan 
    489      1.1  macallan     # Check version conversions
    490      1.1  macallan     for tree in test_tree1.dtb ; do
    491      1.1  macallan 	 for aver in 1 2 3 16 17; do
    492      1.1  macallan 	     atree="ov${aver}_$tree.test.dtb"
    493      1.1  macallan 	     run_dtc_test -I dtb -O dtb -V$aver -o $atree $tree
    494      1.1  macallan 	     for bver in 16 17; do
    495      1.1  macallan 		 btree="ov${bver}_$atree"
    496      1.1  macallan 		 run_dtc_test -I dtb -O dtb -V$bver -o $btree $atree
    497      1.1  macallan 		 run_test dtbs_equal_ordered $btree $tree
    498      1.1  macallan 	     done
    499      1.1  macallan 	 done
    500      1.1  macallan     done
    501      1.1  macallan 
    502      1.1  macallan     # Check merge/overlay functionality
    503      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge.test.dtb test_tree1_merge.dts
    504      1.1  macallan     tree1_tests dtc_tree1_merge.test.dtb test_tree1.dtb
    505      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge_labelled.test.dtb test_tree1_merge_labelled.dts
    506      1.1  macallan     tree1_tests dtc_tree1_merge_labelled.test.dtb test_tree1.dtb
    507      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_label_noderef.test.dtb test_tree1_label_noderef.dts
    508      1.1  macallan     run_test dtbs_equal_unordered dtc_tree1_label_noderef.test.dtb test_tree1.dtb
    509      1.1  macallan     run_dtc_test -I dts -O dtb -o multilabel_merge.test.dtb multilabel_merge.dts
    510      1.1  macallan     run_test references multilabel.test.dtb
    511      1.1  macallan     run_test dtbs_equal_ordered multilabel.test.dtb multilabel_merge.test.dtb
    512      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_merge_path.test.dtb test_tree1_merge_path.dts
    513      1.1  macallan     tree1_tests dtc_tree1_merge_path.test.dtb test_tree1.dtb
    514  1.1.1.2     skrll     run_wrap_error_test $DTC -I dts -O dtb -o /dev/null test_label_ref.dts
    515      1.1  macallan 
    516      1.1  macallan     # Check prop/node delete functionality
    517      1.1  macallan     run_dtc_test -I dts -O dtb -o dtc_tree1_delete.test.dtb test_tree1_delete.dts
    518      1.1  macallan     tree1_tests dtc_tree1_delete.test.dtb
    519      1.1  macallan 
    520      1.1  macallan     run_dtc_test -I dts -O dts -o delete_reinstate_multilabel.dts.test.dts delete_reinstate_multilabel.dts
    521      1.1  macallan     run_wrap_test cmp delete_reinstate_multilabel.dts.test.dts delete_reinstate_multilabel_ref.dts
    522      1.1  macallan 
    523      1.1  macallan     # Check some checks
    524      1.1  macallan     check_tests dup-nodename.dts duplicate_node_names
    525      1.1  macallan     check_tests dup-propname.dts duplicate_property_names
    526      1.1  macallan     check_tests dup-phandle.dts explicit_phandles
    527      1.1  macallan     check_tests zero-phandle.dts explicit_phandles
    528      1.1  macallan     check_tests minusone-phandle.dts explicit_phandles
    529      1.1  macallan     run_sh_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-node-ref.dts
    530      1.1  macallan     run_sh_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-label-ref.dts
    531      1.1  macallan     run_sh_test dtc-fatal.sh -I dts -O dtb nonexist-node-ref2.dts
    532      1.1  macallan     check_tests bad-name-property.dts name_properties
    533      1.1  macallan 
    534      1.1  macallan     check_tests bad-ncells.dts address_cells_is_cell size_cells_is_cell interrupt_cells_is_cell
    535      1.1  macallan     check_tests bad-string-props.dts device_type_is_string model_is_string status_is_string
    536      1.1  macallan     check_tests bad-reg-ranges.dts reg_format ranges_format
    537      1.1  macallan     check_tests bad-empty-ranges.dts ranges_format
    538      1.1  macallan     check_tests reg-ranges-root.dts reg_format ranges_format
    539      1.1  macallan     check_tests default-addr-size.dts avoid_default_addr_size
    540      1.1  macallan     check_tests obsolete-chosen-interrupt-controller.dts obsolete_chosen_interrupt_controller
    541  1.1.1.2     skrll     check_tests reg-without-unit-addr.dts unit_address_vs_reg
    542  1.1.1.2     skrll     check_tests unit-addr-without-reg.dts unit_address_vs_reg
    543      1.1  macallan     run_sh_test dtc-checkfails.sh node_name_chars -- -I dtb -O dtb bad_node_char.dtb
    544      1.1  macallan     run_sh_test dtc-checkfails.sh node_name_format -- -I dtb -O dtb bad_node_format.dtb
    545      1.1  macallan     run_sh_test dtc-checkfails.sh prop_name_chars -- -I dtb -O dtb bad_prop_char.dtb
    546      1.1  macallan 
    547      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label1.dts
    548      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label2.dts
    549      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label3.dts
    550      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label4.dts
    551      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label5.dts
    552      1.1  macallan     run_sh_test dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label6.dts
    553      1.1  macallan 
    554  1.1.1.2     skrll     run_test check_path test_tree1.dtb exists "/subnode@1"
    555  1.1.1.2     skrll     run_test check_path test_tree1.dtb not-exists "/subnode@10"
    556  1.1.1.2     skrll 
    557      1.1  macallan     # Check warning options
    558      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
    559      1.1  macallan     run_sh_test dtc-fails.sh -n test-warn-output.test.dtb -I dts -O dtb bad-ncells.dts
    560      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
    561      1.1  macallan     run_sh_test dtc-checkfails.sh always_fail -- -Walways_fail -I dts -O dtb test_tree1.dts
    562      1.1  macallan     run_sh_test dtc-checkfails.sh -n always_fail -- -Walways_fail -Wno_always_fail -I dts -O dtb test_tree1.dts
    563      1.1  macallan     run_sh_test dtc-fails.sh test-negation-1.test.dtb -Ealways_fail -I dts -O dtb test_tree1.dts
    564      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
    565      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
    566      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
    567      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
    568      1.1  macallan 
    569      1.1  macallan     # Check for proper behaviour reading from stdin
    570      1.1  macallan     run_dtc_test -I dts -O dtb -o stdin_dtc_tree1.test.dtb - < test_tree1.dts
    571      1.1  macallan     run_wrap_test cmp stdin_dtc_tree1.test.dtb dtc_tree1.test.dtb
    572      1.1  macallan     run_dtc_test -I dtb -O dts -o stdin_odts_test_tree1.dtb.test.dts - < test_tree1.dtb
    573      1.1  macallan     run_wrap_test cmp stdin_odts_test_tree1.dtb.test.dts odts_test_tree1.dtb.test.dts
    574      1.1  macallan 
    575      1.1  macallan     # Check integer expresisons
    576      1.1  macallan     run_test integer-expressions -g integer-expressions.test.dts
    577      1.1  macallan     run_dtc_test -I dts -O dtb -o integer-expressions.test.dtb integer-expressions.test.dts
    578      1.1  macallan     run_test integer-expressions integer-expressions.test.dtb
    579      1.1  macallan 
    580      1.1  macallan     # Check for graceful failure in some error conditions
    581      1.1  macallan     run_sh_test dtc-fatal.sh -I dts -O dtb nosuchfile.dts
    582      1.1  macallan     run_sh_test dtc-fatal.sh -I dtb -O dtb nosuchfile.dtb
    583      1.1  macallan     run_sh_test dtc-fatal.sh -I fs -O dtb nosuchfile
    584      1.1  macallan 
    585      1.1  macallan     # Dependencies
    586      1.1  macallan     run_dtc_test -I dts -O dtb -o dependencies.test.dtb -d dependencies.test.d dependencies.dts
    587      1.1  macallan     run_wrap_test cmp dependencies.test.d dependencies.cmp
    588      1.1  macallan 
    589      1.1  macallan     # Search paths
    590      1.1  macallan     run_wrap_error_test $DTC -I dts -O dtb -o search_paths.dtb search_paths.dts
    591      1.1  macallan     run_dtc_test -i search_dir -I dts -O dtb -o search_paths.dtb \
    592      1.1  macallan 	search_paths.dts
    593      1.1  macallan     run_wrap_error_test $DTC -i search_dir_b -I dts -O dtb \
    594      1.1  macallan 	-o search_paths_b.dtb search_paths_b.dts
    595      1.1  macallan     run_dtc_test -i search_dir_b -i search_dir -I dts -O dtb \
    596      1.1  macallan 	-o search_paths_b.dtb search_paths_b.dts
    597      1.1  macallan     run_dtc_test -I dts -O dtb -o search_paths_subdir.dtb \
    598      1.1  macallan 	search_dir_b/search_paths_subdir.dts
    599  1.1.1.2     skrll 
    600  1.1.1.2     skrll     # Check -a option
    601  1.1.1.2     skrll     for align in 2 4 8 16 32 64; do
    602  1.1.1.2     skrll 	# -p -a
    603  1.1.1.2     skrll 	run_dtc_test -O dtb -p 1000 -a $align -o align0.dtb subnode_iterate.dts
    604  1.1.1.2     skrll 	check_align align0.dtb $align
    605  1.1.1.2     skrll 	# -S -a
    606  1.1.1.2     skrll 	run_dtc_test -O dtb -S 1999 -a $align -o align1.dtb subnode_iterate.dts
    607  1.1.1.2     skrll 	check_align align1.dtb $align
    608  1.1.1.2     skrll     done
    609  1.1.1.2     skrll 
    610  1.1.1.2     skrll     # Tests for overlay/plugin generation
    611  1.1.1.2     skrll     dtc_overlay_tests
    612      1.1  macallan }
    613      1.1  macallan 
    614      1.1  macallan cmp_tests () {
    615      1.1  macallan     basetree="$1"
    616      1.1  macallan     shift
    617      1.1  macallan     wrongtrees="$@"
    618      1.1  macallan 
    619      1.1  macallan     run_test dtb_reverse $basetree
    620      1.1  macallan 
    621      1.1  macallan     # First dtbs_equal_ordered
    622      1.1  macallan     run_test dtbs_equal_ordered $basetree $basetree
    623      1.1  macallan     run_test dtbs_equal_ordered -n $basetree $basetree.reversed.test.dtb
    624      1.1  macallan     for tree in $wrongtrees; do
    625      1.1  macallan 	run_test dtbs_equal_ordered -n $basetree $tree
    626      1.1  macallan     done
    627      1.1  macallan 
    628      1.1  macallan     # now unordered
    629      1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree
    630      1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree.reversed.test.dtb
    631      1.1  macallan     run_test dtbs_equal_unordered $basetree.reversed.test.dtb $basetree
    632      1.1  macallan     for tree in $wrongtrees; do
    633      1.1  macallan 	run_test dtbs_equal_unordered -n $basetree $tree
    634      1.1  macallan     done
    635      1.1  macallan 
    636      1.1  macallan     # now dtc --sort
    637      1.1  macallan     run_dtc_test -I dtb -O dtb -s -o $basetree.sorted.test.dtb $basetree
    638      1.1  macallan     run_test dtbs_equal_unordered $basetree $basetree.sorted.test.dtb
    639      1.1  macallan     run_dtc_test -I dtb -O dtb -s -o $basetree.reversed.sorted.test.dtb $basetree.reversed.test.dtb
    640      1.1  macallan     run_test dtbs_equal_unordered $basetree.reversed.test.dtb $basetree.reversed.sorted.test.dtb
    641      1.1  macallan     run_test dtbs_equal_ordered $basetree.sorted.test.dtb $basetree.reversed.sorted.test.dtb
    642      1.1  macallan }
    643      1.1  macallan 
    644      1.1  macallan dtbs_equal_tests () {
    645      1.1  macallan     WRONG_TREE1=""
    646      1.1  macallan     for x in 1 2 3 4 5 6 7 8 9; do
    647      1.1  macallan 	run_dtc_test -I dts -O dtb -o test_tree1_wrong$x.test.dtb test_tree1_wrong$x.dts
    648      1.1  macallan 	WRONG_TREE1="$WRONG_TREE1 test_tree1_wrong$x.test.dtb"
    649      1.1  macallan     done
    650      1.1  macallan     cmp_tests test_tree1.dtb $WRONG_TREE1
    651      1.1  macallan }
    652      1.1  macallan 
    653      1.1  macallan fdtget_tests () {
    654      1.1  macallan     dts=label01.dts
    655      1.1  macallan     dtb=$dts.fdtget.test.dtb
    656      1.1  macallan     run_dtc_test -O dtb -o $dtb $dts
    657      1.1  macallan 
    658      1.1  macallan     # run_fdtget_test <expected-result> [<flags>] <file> <node> <property>
    659      1.1  macallan     run_fdtget_test "MyBoardName" $dtb / model
    660      1.1  macallan     run_fdtget_test "MyBoardName MyBoardFamilyName" $dtb / compatible
    661      1.1  macallan     run_fdtget_test "77 121 66 111 \
    662      1.1  macallan 97 114 100 78 97 109 101 0 77 121 66 111 97 114 100 70 97 109 105 \
    663      1.1  macallan 108 121 78 97 109 101 0" -t bu $dtb / compatible
    664      1.1  macallan     run_fdtget_test "MyBoardName MyBoardFamilyName" -t s $dtb / compatible
    665      1.1  macallan     run_fdtget_test 32768 $dtb /cpus/PowerPC,970@1 d-cache-size
    666      1.1  macallan     run_fdtget_test 8000 -tx $dtb /cpus/PowerPC,970@1 d-cache-size
    667      1.1  macallan     run_fdtget_test "61 62 63 0" -tbx $dtb /randomnode tricky1
    668      1.1  macallan     run_fdtget_test "a b c d de ea ad be ef" -tbx $dtb /randomnode blob
    669      1.1  macallan 
    670      1.1  macallan     # Here the property size is not a multiple of 4 bytes, so it should fail
    671      1.1  macallan     run_wrap_error_test $DTGET -tlx $dtb /randomnode mixed
    672      1.1  macallan     run_fdtget_test "6162 6300 1234 0 a 0 b 0 c" -thx $dtb /randomnode mixed
    673      1.1  macallan     run_fdtget_test "61 62 63 0 12 34 0 0 0 a 0 0 0 b 0 0 0 c" \
    674      1.1  macallan 	-thhx $dtb /randomnode mixed
    675      1.1  macallan     run_wrap_error_test $DTGET -ts $dtb /randomnode doctor-who
    676      1.1  macallan 
    677      1.1  macallan     # Test multiple arguments
    678      1.1  macallan     run_fdtget_test "MyBoardName\nmemory" -ts $dtb / model /memory device_type
    679      1.1  macallan 
    680      1.1  macallan     # Test defaults
    681      1.1  macallan     run_wrap_error_test $DTGET -tx $dtb /randomnode doctor-who
    682      1.1  macallan     run_fdtget_test "<the dead silence>" -tx \
    683      1.1  macallan 	-d "<the dead silence>" $dtb /randomnode doctor-who
    684      1.1  macallan     run_fdtget_test "<blink>" -tx -d "<blink>" $dtb /memory doctor-who
    685      1.1  macallan }
    686      1.1  macallan 
    687      1.1  macallan fdtput_tests () {
    688      1.1  macallan     dts=label01.dts
    689      1.1  macallan     dtb=$dts.fdtput.test.dtb
    690      1.1  macallan     text=lorem.txt
    691      1.1  macallan 
    692      1.1  macallan     # Allow just enough space for $text
    693      1.1  macallan     run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts
    694      1.1  macallan 
    695      1.1  macallan     # run_fdtput_test <expected-result> <file> <node> <property> <flags> <value>
    696      1.1  macallan     run_fdtput_test "a_model" $dtb / model -ts "a_model"
    697      1.1  macallan     run_fdtput_test "board1 board2" $dtb / compatible -ts board1 board2
    698      1.1  macallan     run_fdtput_test "board1 board2" $dtb / compatible -ts "board1 board2"
    699      1.1  macallan     run_fdtput_test "32768" $dtb /cpus/PowerPC,970@1 d-cache-size "" "32768"
    700      1.1  macallan     run_fdtput_test "8001" $dtb /cpus/PowerPC,970@1 d-cache-size -tx 0x8001
    701      1.1  macallan     run_fdtput_test "2 3 12" $dtb /randomnode tricky1 -tbi "02 003 12"
    702      1.1  macallan     run_fdtput_test "a b c ea ad be ef" $dtb /randomnode blob \
    703      1.1  macallan 	-tbx "a b c ea ad be ef"
    704      1.1  macallan     run_fdtput_test "a0b0c0d deeaae ef000000" $dtb /randomnode blob \
    705      1.1  macallan 	-tx "a0b0c0d deeaae ef000000"
    706      1.1  macallan     run_fdtput_test "$(cat $text)" $dtb /randomnode blob -ts "$(cat $text)"
    707      1.1  macallan 
    708      1.1  macallan     # Test expansion of the blob when insufficient room for property
    709      1.1  macallan     run_fdtput_test "$(cat $text $text)" $dtb /randomnode blob -ts "$(cat $text $text)"
    710      1.1  macallan 
    711      1.1  macallan     # Start again with a fresh dtb
    712      1.1  macallan     run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts
    713      1.1  macallan 
    714      1.1  macallan     # Node creation
    715      1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /baldrick sod
    716      1.1  macallan     run_wrap_test $DTPUT $dtb -c /chosen/son /chosen/daughter
    717      1.1  macallan     run_fdtput_test "eva" $dtb /chosen/daughter name "" -ts "eva"
    718      1.1  macallan     run_fdtput_test "adam" $dtb /chosen/son name "" -ts "adam"
    719      1.1  macallan 
    720      1.1  macallan     # Not allowed to create an existing node
    721      1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /chosen
    722      1.1  macallan     run_wrap_error_test $DTPUT $dtb -c /chosen/son
    723      1.1  macallan 
    724      1.1  macallan     # Automatic node creation
    725      1.1  macallan     run_wrap_test $DTPUT $dtb -cp /blackadder/the-second/turnip \
    726      1.1  macallan 	/blackadder/the-second/potato
    727      1.1  macallan     run_fdtput_test 1000 $dtb /blackadder/the-second/turnip cost "" 1000
    728      1.1  macallan     run_fdtput_test "fine wine" $dtb /blackadder/the-second/potato drink \
    729      1.1  macallan 	"-ts" "fine wine"
    730      1.1  macallan     run_wrap_test $DTPUT $dtb -p /you/are/drunk/sir/winston slurp -ts twice
    731      1.1  macallan 
    732      1.1  macallan     # Test expansion of the blob when insufficent room for a new node
    733      1.1  macallan     run_wrap_test $DTPUT $dtb -cp "$(cat $text $text)/longish"
    734      1.1  macallan 
    735      1.1  macallan     # Allowed to create an existing node with -p
    736      1.1  macallan     run_wrap_test $DTPUT $dtb -cp /chosen
    737      1.1  macallan     run_wrap_test $DTPUT $dtb -cp /chosen/son
    738      1.1  macallan 
    739      1.1  macallan     # Start again with a fresh dtb
    740      1.1  macallan     run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts
    741      1.1  macallan 
    742      1.1  macallan     # Node delete
    743      1.1  macallan     run_wrap_test $DTPUT $dtb -c /chosen/node1 /chosen/node2 /chosen/node3
    744      1.1  macallan     run_fdtget_test "node3\nnode2\nnode1" $dtb -l  /chosen
    745      1.1  macallan     run_wrap_test $DTPUT $dtb -r /chosen/node1 /chosen/node2
    746      1.1  macallan     run_fdtget_test "node3" $dtb -l  /chosen
    747      1.1  macallan 
    748      1.1  macallan     # Delete the non-existent node
    749      1.1  macallan     run_wrap_error_test $DTPUT $dtb -r /non-existent/node
    750      1.1  macallan 
    751      1.1  macallan     # Property delete
    752      1.1  macallan     run_fdtput_test "eva" $dtb /chosen/ name "" -ts "eva"
    753      1.1  macallan     run_fdtput_test "016" $dtb /chosen/ age  "" -ts "016"
    754      1.1  macallan     run_fdtget_test "age\nname\nbootargs\nlinux,platform" $dtb -p  /chosen
    755      1.1  macallan     run_wrap_test $DTPUT $dtb -d /chosen/ name age
    756      1.1  macallan     run_fdtget_test "bootargs\nlinux,platform" $dtb -p  /chosen
    757      1.1  macallan 
    758      1.1  macallan     # Delete the non-existent property
    759      1.1  macallan     run_wrap_error_test $DTPUT $dtb -d /chosen   non-existent-prop
    760      1.1  macallan 
    761      1.1  macallan     # TODO: Add tests for verbose mode?
    762      1.1  macallan }
    763      1.1  macallan 
    764      1.1  macallan utilfdt_tests () {
    765      1.1  macallan     run_test utilfdt_test
    766      1.1  macallan }
    767      1.1  macallan 
    768      1.1  macallan fdtdump_tests () {
    769      1.1  macallan     run_fdtdump_test fdtdump.dts
    770      1.1  macallan }
    771      1.1  macallan 
    772      1.1  macallan while getopts "vt:me" ARG ; do
    773      1.1  macallan     case $ARG in
    774      1.1  macallan 	"v")
    775      1.1  macallan 	    unset QUIET_TEST
    776      1.1  macallan 	    ;;
    777      1.1  macallan 	"t")
    778      1.1  macallan 	    TESTSETS=$OPTARG
    779      1.1  macallan 	    ;;
    780      1.1  macallan 	"m")
    781      1.1  macallan 	    VALGRIND="valgrind --tool=memcheck -q --error-exitcode=$VGCODE"
    782      1.1  macallan 	    ;;
    783      1.1  macallan 	"e")
    784      1.1  macallan 	    STOP_ON_FAIL=1
    785      1.1  macallan 	    ;;
    786      1.1  macallan     esac
    787      1.1  macallan done
    788      1.1  macallan 
    789      1.1  macallan if [ -z "$TESTSETS" ]; then
    790      1.1  macallan     TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump"
    791      1.1  macallan fi
    792      1.1  macallan 
    793      1.1  macallan # Make sure we don't have stale blobs lying around
    794      1.1  macallan rm -f *.test.dtb *.test.dts
    795      1.1  macallan 
    796      1.1  macallan for set in $TESTSETS; do
    797      1.1  macallan     case $set in
    798      1.1  macallan 	"libfdt")
    799      1.1  macallan 	    libfdt_tests
    800      1.1  macallan 	    ;;
    801      1.1  macallan 	"utilfdt")
    802      1.1  macallan 	    utilfdt_tests
    803      1.1  macallan 	    ;;
    804      1.1  macallan 	"dtc")
    805      1.1  macallan 	    dtc_tests
    806      1.1  macallan 	    ;;
    807      1.1  macallan 	"dtbs_equal")
    808      1.1  macallan 	    dtbs_equal_tests
    809      1.1  macallan 	    ;;
    810      1.1  macallan 	"fdtget")
    811      1.1  macallan 	    fdtget_tests
    812      1.1  macallan 	    ;;
    813      1.1  macallan 	"fdtput")
    814      1.1  macallan 	    fdtput_tests
    815      1.1  macallan 	    ;;
    816      1.1  macallan 	"fdtdump")
    817      1.1  macallan 	    fdtdump_tests
    818      1.1  macallan 	    ;;
    819      1.1  macallan     esac
    820      1.1  macallan done
    821      1.1  macallan 
    822      1.1  macallan echo "********** TEST SUMMARY"
    823      1.1  macallan echo "*     Total testcases:	$tot_tests"
    824      1.1  macallan echo "*                PASS:	$tot_pass"
    825      1.1  macallan echo "*                FAIL:	$tot_fail"
    826      1.1  macallan echo "*   Bad configuration:	$tot_config"
    827      1.1  macallan if [ -n "$VALGRIND" ]; then
    828      1.1  macallan     echo "*    valgrind errors:	$tot_vg"
    829      1.1  macallan fi
    830      1.1  macallan echo "* Strange test result:	$tot_strange"
    831      1.1  macallan echo "**********"
    832      1.1  macallan 
    833