Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/testsuite/runtest

Parent Directory Parent Directory | Revision Log Revision Log


Revision 532 - (hide annotations) (download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 2514 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd

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

Properties

Name Value
svn:executable *