source: MondoRescue/branches/stable/mindi-busybox/testsuite/runtest @ 821

Last change on this file since 821 was 821, checked in by Bruno Cornec, 14 years ago

Addition of busybox 1.2.1 as a mindi-busybox new package
This should avoid delivering binary files in mindi not built there (Fedora and Debian are quite serious about that)

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1#!/bin/sh
2
3[ -n "$srcdir" ] || srcdir=$(pwd)
4[ -n "$bindir" ] || bindir=$(dirname $(pwd))
5PATH=$bindir:$PATH
6
7# Run old-style test.
8
9function 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
58run_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
80status=0
81verbose=0
82
83if [ x"$1" = x"-v" ]; then
84    verbose=1
85    export VERBOSE=$verbose
86    shift
87fi
88
89if [ $# -ne 0 ]; then
90    applets=$(cd $srcdir ; for i in $@; do ls ${i}* ; done)
91else
92    applets=$(ls $srcdir)
93fi
94
95# Populate a directory with links to all busybox applets
96
97LINKSDIR="${bindir}/runtest-tempdir-links"
98rm -rf "$LINKSDIR" 2>/dev/null
99mkdir "$LINKSDIR"
100for i in $(sed 's@/[a-z0-9/\[]*/@@' $bindir/busybox.links 2>/dev/null)
101do
102    ln -s $bindir/busybox "$LINKSDIR"/$i
103done
104
105# Set up option flags so tests can be selective.
106
107configfile=${bindir:-../../}/.config
108export OPTIONFLAGS=:$(echo $(sed -nr 's/^CONFIG_(.*)=.*/\1/p' $configfile) | sed 's/ /:/g')
109
110for 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
138done
139rm -rf "$LINKSDIR"
140exit $status
Note: See TracBrowser for help on using the repository browser.