blob: c6d2cdcda60d13ee375924886d9f39285f88cbb2 [file] [log] [blame]
Denis Vlasenko27e15012008-09-28 17:19:02 +00001#!/bin/sh
2
Denys Vlasenkod4e4fdb2017-07-03 21:31:16 +02003run_testsuite=false
Denys Vlasenko8cab6672012-04-20 14:48:00 +02004run_testsuite=true
5
Denys Vlasenkod4e4fdb2017-07-03 21:31:16 +02006run_single_test=false
7run_single_test=true
8
Denys Vlasenkoff0e8752010-05-10 04:16:43 +02009export LIBC="uclibc"
Denys Vlasenko26777aa2010-11-22 23:49:10 +010010export CROSS_COMPILER_PREFIX="i686-"
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020011export MAKEOPTS="-j9"
12
Denys Vlasenko540aa112021-08-16 20:03:07 +020013test -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
Denis Vlasenko27e15012008-09-28 17:19:02 +000021cnt=0
22fail=0
Denis Vlasenko27e15012008-09-28 17:19:02 +000023while sleep 1; do
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020024 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++
Denys Vlasenko8cab6672012-04-20 14:48:00 +020035 continue
36 fi
37 if $run_testsuite; then
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020038 (
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"
Denys Vlasenkode912f02016-12-12 11:08:51 +010045 grep ^FAIL -- "$dir/testsuite/runtest.log"
Denys Vlasenko8cab6672012-04-20 14:48:00 +020046 exit 1 # you may comment this out...
47 let fail++
48 continue
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020049 fi
50 tail -n10 -- "$dir/testsuite/runtest.log"
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020051 fi
Denys Vlasenkod4e4fdb2017-07-03 21:31:16 +020052 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
Denys Vlasenko82d1c1f2017-12-31 17:30:02 +010074 grep -i 'warning:' "$dir/make.log"
Denys Vlasenko8cab6672012-04-20 14:48:00 +020075 rm -rf -- "$dir"
Denys Vlasenkoff0e8752010-05-10 04:16:43 +020076 let cnt++
Denis Vlasenko27e15012008-09-28 17:19:02 +000077done