blob: c1b1ec2f4ce5e59be5c66a21fde8ec923005264a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#!/bin/sh
[ -n "$srcdir" ] || srcdir=$(pwd)
[ -n "$bindir" ] || bindir=$(dirname $(pwd))
PATH=$bindir:$PATH
run_applet_testcase ()
{
local applet=$1
local testcase=$2
local status=0
local RES=
local uc_applet=$(echo $applet | tr a-z A-Z)
local testname=$(basename $testcase)
if grep -q "^# CONFIG_${uc_applet} is not set$" $bindir/.config; then
echo UNTESTED: $testname
return 0
fi
if grep -q "^# FEATURE: " $testcase; then
local feature=`sed -ne 's/^# FEATURE: //p' $testcase`
if grep -q "^# ${feature} is not set$" $bindir/.config; then
echo UNTESTED: $testname
return 0
fi
fi
rm -rf tmp
mkdir -p tmp
pushd tmp >/dev/null
d=$srcdir sh -x -e $testcase >.logfile.txt 2>&1
if [ $? != 0 ] ; then
echo FAIL: $testname
if [ $verbose -gt 0 ]; then
cat .logfile.txt
#exit 1;
fi;
status=$?
else
echo PASS: $testname
rm -f .logfile.txt
status=$?
fi
popd >/dev/null
rm -rf tmp
return $status
}
run_applet_tests ()
{
local applet=$1
local status=0
for testcase in $srcdir/$applet/*; do
if [ "$testcase" = "$srcdir/$applet/CVS" ]; then
continue
fi
if run_applet_testcase $applet $testcase; then
:
else
status=1
fi
done
return $status
}
status=0
verbose=0
if [ x"$1" = x"-v" ]; then
verbose=1
export VERBOSE=$verbose
shift
fi
if [ $# -ne 0 ]; then
applets=$(cd $srcdir ; for i in $@; do ls ${i}* ; done)
else
applets=$(ls $srcdir)
fi
# Set up option flags so tests can be selective.
configfile=${bindir:-../../}/.config
export OPTIONFLAGS=:$(echo $(sed -nr 's/^CONFIG_(.*)=.*/\1/p' $configfile) | sed 's/ /:/')
for applet in $applets; do
if [ "$applet" = "links" ]; then continue; fi
if [ "$applet" != "CVS" -a -d "$srcdir/$applet" ]; then
if run_applet_tests $applet; then
:
else
status=1
fi
fi
# Is this a new-style test?
applet=$(echo "$applet" | sed -n 's/\.tests$//p')
if [ ${#applet} -ne 0 ]
then
appcfg=`grep -i "^# CONFIG_$applet" $configfile`
if [ -n "$appcfg" ]
then
echo "SKIPPED: $applet (is configured out)"
continue
fi
# Setup environment for test.
if [ -d links ]; then
rm -f links/"$applet"
else
mkdir links 2> /dev/null
fi
ln -s ${bindir:-../..}/busybox links/"$applet"
PATH="$srcdir:$PATH" COMMAND="links/$applet" \
"${srcdir:-.}/$applet".tests
if [ $? -ne 0 ]; then status=1; fi
fi
done
rm -f links/*
rmdir links
exit $status
|