1#!/bin/sh 2 3run_testsuite=false 4run_testsuite=true 5 6run_single_test=false 7run_single_test=true 8 9export LIBC="uclibc" 10export CROSS_COMPILER_PREFIX="i686-" 11export MAKEOPTS="-j9" 12 13test -d "$1" || { echo "'$1' is not a directory"; exit 1; } 14test -x "$1/scripts/randomtest" || { echo "No scripts/randomtest in '$1'"; exit 1; } 15 16test "$SKIP_MOUNT_MAND_TESTS" = "1" || { 17 echo "SKIP_MOUNT_MAND_TESTS not set, some mount tests will fail" 18 echo "if current kernel has CONFIG_MANDATORY_FILE_LOCKING off." 19} 20 21cnt=0 22fail=0 23while sleep 1; do 24 echo "Passes: $cnt Failures: $fail" 25 dir="test.$$" 26 while test -e "$dir" -o -e "failed.$dir"; do 27 dir="test.$$.$RANDOM" 28 done 29 echo "Running randconfig test in $dir..." 30 if ! "$1/scripts/randomtest" "$1" "$dir" >/dev/null; then 31 mv -- "$dir" "failed.$dir" 32 echo "Failed build in: failed.$dir" 33 exit 1 # you may comment this out... 34 let fail++ 35 continue 36 fi 37 if $run_testsuite; then 38 ( 39 cd -- "$dir/testsuite" || exit 1 40 echo "Running testsuite in $dir..." 41 SKIP_KNOWN_BUGS=1 SKIP_INTERNET_TESTS=1 ./runtest -v >runtest.log 2>&1 42 ) 43 if test $? != 0; then 44 echo "Failed runtest in $dir" 45 grep ^FAIL -- "$dir/testsuite/runtest.log" 46 exit 1 # you may comment this out... 47 let fail++ 48 continue 49 fi 50 tail -n10 -- "$dir/testsuite/runtest.log" 51 fi 52 if $run_single_test; then 53 ( 54 cd -- "$dir" || exit 1 55 echo "Running make_single_applets.sh in $dir..." 56 57 if grep -q '# CONFIG_FEATURE_TFTP_GET is not set' .config \ 58 && grep -q '# CONFIG_FEATURE_TFTP_PUT is not set' .config \ 59 ; then 60 # If both off, tftp[d] is ifdefed out and test fails. 61 # Enable one: 62 sed 's/# CONFIG_FEATURE_TFTP_GET is not set/CONFIG_FEATURE_TFTP_GET=y/' -i .config 63 fi 64 65 ./make_single_applets.sh 66 ) 67 if test $? != 0; then 68 echo "Failed make_single_applets.sh in $dir" 69 exit 1 # you may comment this out... 70 let fail++ 71 continue 72 fi 73 fi 74 grep -i 'warning:' "$dir/make.log" 75 rm -rf -- "$dir" 76 let cnt++ 77done 78