source: trunk/test/test.sh @ 235

Last change on this file since 235 was 235, checked in by katerina, 12 years ago

Fix for potential deadlock when calling external programm (ticket #155).

File size: 19.4 KB
Line 
1#! /bin/sh
2
3#
4# Copyright Rainer Wichmann (2006)
5#
6# License Information:
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20#
21
22# -----------------------------------------------------------------------
23# Be Bourne compatible
24# -----------------------------------------------------------------------
25
26if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
27  emulate sh
28  NULLCMD=:
29elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
30  set -o posix
31fi
32
33# -----------------------------------------------------------------------
34# Make sure we support functions (from the autoconf manual)
35# -----------------------------------------------------------------------
36
37TSHELL="${TSHELL-/bin/sh}"
38if test x"$1" = "x--re-executed" 
39then
40    shift
41elif "$TSHELL" -c 'foo () { (exit 0); exit 0; }; foo' >/dev/null 2>&1
42then
43    :
44else
45    for cmd in sh bash ash bsh ksh zsh sh5; do
46        X="$PATH:/bin:/usr/bin:/usr/afsws/bin:/usr/ucb:/usr/xpg4/bin";
47        OLD_IFS=${IFS}
48        IFS=':'; export IFS
49        for dir in $X; do
50            shell="$dir/$cmd"
51            if (test -f "$shell" || test -f "$shell.exe")
52            then
53                if "$shell" -c  'foo () { (exit 0); exit 0; }; foo' >/dev/null 2>&1
54                then
55                    TSHELL="$shell"; export TSHELL
56                    IFS=${OLD_IFS}; export IFS
57                    exec "$shell" "$0" --re-executed ${1+"$@"}
58                fi
59            fi
60        done
61        IFS=${OLD_IFS}; export IFS
62    done
63    echo "-----------------------------------------------------------------"
64    echo "ERROR: Unable to locate a shell interpreter with function support" >&2
65    echo "-----------------------------------------------------------------"
66    { (exit 1); exit 1; }
67fi
68
69# -----------------------------------------------------------------------
70# Make sure we support 'let' (from the autoconf manual)
71# -----------------------------------------------------------------------
72
73TSHELL="${TSHELL-/bin/sh}"
74if test x"$1" = "x--re-run" 
75then
76    shift
77elif "$TSHELL" -c 'a=5; let "a = a + 5"' >/dev/null 2>&1
78then
79    :
80else
81    for cmd in sh bash ash bsh ksh zsh sh5; do
82        X="$PATH:/bin:/usr/bin:/usr/afsws/bin:/usr/ucb:/usr/xpg4/bin";
83        OLD_IFS=${IFS}
84        IFS=':'; export IFS
85        for dir in $X; do
86            shell="$dir/$cmd"
87            if (test -f "$shell" || test -f "$shell.exe")
88            then
89                if "$shell" -c  'foo () { (exit 0); exit 0; }; foo' >/dev/null 2>&1
90                then
91                    if "$shell" -c  'a=5; let "a = a + 5"' >/dev/null 2>&1
92                    then
93                        TSHELL="$shell"; export TSHELL
94                        IFS=${OLD_IFS}; export IFS
95                        exec "$shell" "$0" --re-run ${1+"$@"}
96                    fi
97                fi
98            fi
99        done
100        IFS=${OLD_IFS}; export IFS
101    done
102    echo "-----------------------------------------------------------------"
103    echo "ERROR: Unable to locate a shell interpreter with support for 'let'" >&2
104    echo "-----------------------------------------------------------------"
105    { (exit 1); exit 1; }
106fi
107
108
109umask 0022
110
111isok=`test -t 1 2>&1 | wc -c`
112if [ "$isok" -eq 0 ]; then
113   test -t 1
114   isok=$?
115fi
116
117# The following two are the ANSI sequences for start and end embolden
118if [ x"$isok" = x0 ]; then
119    case $TERM in
120        vt*|ansi*|con*|xterm*|linux*|screen*|rxvt*)
121            S='[1;30m'
122            R=[31m
123            G=[32m
124            B=[36m
125            E=[m
126            ;;
127        *)
128            S=
129            R=
130            G=
131            B=
132            E=
133            ;;
134    esac
135fi
136
137
138usage() {
139    echo "test.sh [options] <test_number> [hostname]"
140    echo "        [-q|--quiet|-v|--verbose] [-s|--stoponerr] [-n|--no-cleanup]"
141    echo "        [--srcdir=top_srcdir] [--color=always|never|auto]"
142    echo
143    echo ${S}test.sh  1${E}  -- Compile with many different options"
144    echo ${S}test.sh  2${E}  -- Hash function            (testrc_1)"
145    echo ${S}test.sh  3${E}  -- Standalone init/check"
146    echo ${S}test.sh  4${E}  -- Microstealth init/check"
147    echo ${S}test.sh  5${E}  -- External program call    (testrc_1ext.in)"
148    echo ${S}test.sh  6${E}  -- Controlling the daemon"
149    echo ${S}test.sh  7${E}  -- GnuPG signed files / prelude log"
150    echo ${S}test.sh  8${E}  -- Suidcheck"
151    echo ${S}test.sh  9${E}  -- Process check"
152    echo ${S}test.sh 10${E}  -- Port check"
153
154    echo ${S}test.sh 20${E}  -- Test c/s init/check      (testrc_2.in)"
155    echo ${S}test.sh 21${E}  -- Test full c/s init/check (testrc_2.in)"
156    echo ${S}test.sh 22${E}  -- Test full c/s w/gpg      (testrc_2.in)"
157    echo ${S}test.sh 23${E}  -- Test full c/s w/mysql    (testrc_2.in)"
158    echo ${S}test.sh 24${E}  -- Test full c/s w/postgres (testrc_2.in)"
159    echo ${S}test.sh all${E} -- All tests"
160}
161scripts () {
162    echo 
163    echo "Scripts used by tests:"
164    echo "  (1) testcompile.sh (2) testhash.sh     (3) testrun_1.sh   (4) testrun_1a.sh"
165    echo "  (5) testext.sh     (6) testtimesrv.sh  (7) testrun_1b.sh  (8) testrun_1c.sh" 
166    echo "  (9) testrun_1d.sh (10) testrun_1e.sh" 
167    echo " (20) testrun_2.sh  (21) testrun_2a.sh  (22) testrun_2b.sh (23) testrun_2c.sh"
168    echo " (24) testrun_2d.sh"
169}
170
171#
172# Option parsing
173#
174verbose=
175quiet=
176stoponerr=
177color=auto
178cleanup=on
179doall=
180usevalgrind=
181
182while [ $# -gt 0 ]
183do
184    case "$1" in
185        -h|--help)     usage; exit 0;;
186        --scripts)     usage; scripts; exit 0;;
187        -v|--verbose)  verbose=on; quiet= ;;
188        -q|--quiet)    quiet=on; verbose= ;;
189        -s|--stoponerr)     stoponerr=on;;
190        -n|--no-cleanup) cleanup= ;;
191        --really-all) doall=on;;
192        --valgrind) usevalgrind=on;;
193        --srcdir=*)    TOP_SRCDIR=`echo $1 | sed s,--srcdir=,,`; export TOP_SRCDIR;;
194        --color=*)     
195            arg=`echo $1 | sed s,--color=,,`
196            case $arg in
197                auto) ;;
198                never|none|no) 
199                    S=
200                    R=
201                    G=
202                    B=
203                    E=
204                    ;;
205                always|yes)
206                    S='[1;30m'
207                    R=[31m
208                    G=[32m
209                    G=[36m
210                    E=[m
211                    ;;
212                *) echo "Invalid argument $1"; exit 1;;
213            esac
214            ;;
215        -*)  echo "Invalid argument $1"; exit 1;;
216        *) break;;
217    esac
218    shift
219done
220
221export verbose
222export quiet
223export stoponerr
224export cleanup
225export doall
226export S; export R; export G; export B; export E;
227
228SCRIPTDIR=.
229
230#
231# 'make test' will copy the 'test' subdirectory and replace TEST_SRCDIR
232#
233TEST_SRCDIR="XXXSRCXXX";
234if test "x${TOP_SRCDIR}" = x; then
235    # not within source tree, and not called with 'make testN'
236    if test -f "${TEST_SRCDIR}/src/samhain.c"; then
237        TOP_SRCDIR="${TEST_SRCDIR}"; export TOP_SRCDIR
238        if test -f test/testcompile.sh; then
239            SCRIPTDIR=test
240        fi
241    # not within source tree, not called by 'make', and in 'test' subdir
242    elif test -f "../${TEST_SRCDIR}/src/samhain.c"; then
243        cd ..
244        SCRIPTDIR=test
245        TOP_SRCDIR="${TEST_SRCDIR}"; export TOP_SRCDIR
246    # within source tree, and not called with 'make testN'
247    else
248        if test -f ../src/samhain.c; then
249            cd ..
250            SCRIPTDIR=test
251            TOP_SRCDIR=.
252            export TOP_SRCDIR
253        elif test -f ./src/samhain.c; then
254            SCRIPTDIR=test
255            TOP_SRCDIR=.
256            export TOP_SRCDIR
257        else
258            echo "Please use --srcdir=DIR, where DIR should be the"
259            echo "top directory in the samhain source tree."
260            exit 1
261        fi
262    fi
263else
264    # called by make, or with --srcdir=TOP_SRCDIR
265    if   test -f "${TOP_SRCDIR}/src/samhain.c"; then
266        SCRIPTDIR="${TOP_SRCDIR}/test"
267    elif test -f "../${TOP_SRCDIR}/src/samhain.c"; then
268        cd ..; SCRIPTDIR="${TOP_SRCDIR}/test"
269    else
270        echo "Please use --srcdir=DIR, where DIR should be the"
271        echo "top directory in the samhain source tree."
272        exit 1
273    fi
274fi
275
276export SCRIPTDIR
277
278PW_DIR=`pwd`; export PW_DIR
279
280#
281# group/world writeable will cause problems
282#
283chmod go-w .
284#
285#
286#
287if test x$UID != x -a x$UID != x0; then
288  TRUST="--with-trusted=0,2,$UID"
289else
290  TRUST="--with-trusted=0,2,1000"
291fi
292export TRUST
293#
294# find a good 'make'
295#
296MAKE=`which gmake`
297if test "x$?" = x1 ; then
298    MAKE="make -s -j 3"
299else
300    MAKE=`which gmake | sed -e "s%\([a-z:]\) .*%\1%g"` 
301    if test "x$MAKE" = x; then
302        MAKE="make -s"
303    elif test "x$MAKE" = xno; then
304        MAKE="make -s"
305    else
306        if test "x$MAKE" = "xwhich:"; then
307                MAKE="make -s"
308        else
309                MAKE="gmake -s"
310                gmake -v >/dev/null 2>&1 || MAKE="make -s"
311        fi
312    fi
313fi
314export MAKE
315
316failcount=0
317okcount=0
318skipcount=0
319global_count=0
320last_count=0
321
322# args: #test, #total, status, optional msg
323log_msg ()
324{
325    if   [ x"$COLUMNS" != x ]; then
326        TERMWIDTH=$COLUMNS
327    elif [ x"$COLS" != x ]; then
328        TERMWIDTH=$COLS
329    else
330        TERMWIDTH=80
331    fi
332    cols=66; 
333    #
334    if [ $1 -eq 0 ]; then
335        msg=" ${4}"
336    else
337        if [ ${1} -eq 1 ]; then
338            global_count=${last_count}
339        fi
340        let "v = $1 + global_count" >/dev/null
341        last_count=${v}
342        dd=''; if [ $v -lt 10 ]; then dd=" "; fi
343        dt=''; if [ $2 -lt 10 ]; then dt=" "; fi
344        if [ -z "$4" ]; then
345            msg=" test ${dd}${v}/${dt}${2}"
346        else
347            msg=" test ${dd}${v}/${dt}${2}    ${4}"
348        fi
349    fi
350    #
351    if   [ x"$3" = xfailure ]; then
352        ccode=$R
353    elif [ x"$3" = xsuccess ]; then
354        ccode=$G
355    else
356        ccode=$B
357    fi
358    if [ -z "${R}" ]; then
359        echo " [${3}] ${msg}"
360    else
361        # len=${#...} is not bourne shell
362        # also, need to account for terminal control sequences
363        len=`echo "$msg" | awk '/1;30m/ { print length()-10; }; !/1;30m/ { print length();}'`
364        let "cols = cols - len" >/dev/null
365        if [ $cols -ge 0 ]; then
366            moveto='['$cols'C'
367            echo "${msg}${moveto}${ccode}[${3}]${E}"
368        else
369            echo "${msg}${ccode}[${3}]${E}"
370        fi
371    fi
372}
373
374log_fail () { 
375    [ -z "$quiet" ] && log_msg "$1" "$2" failure "$3"; 
376    let "failcount = failcount + 1" >/dev/null; 
377    test -z "$stoponerr" || exit 1; 
378}
379log_ok ()   { 
380    [ -z "$quiet" ] && log_msg "$1" "$2" success "$3"; 
381    let "okcount = okcount + 1" >/dev/null; 
382}
383log_skip () { 
384    [ -z "$quiet" ] && log_msg "$1" "$2" skipped "$3"; 
385    let "skipcount = skipcount + 1" >/dev/null; 
386}
387
388log_msg_fail () { log_msg 0 0 failure "$1"; }
389log_msg_ok ()   { log_msg 0 0 success "$1"; }
390log_msg_skip () { log_msg 0 0 skipped "$1"; }
391
392log_start () {
393    if [ -z "$quiet" ]; then
394        echo; 
395        echo "${S}__ START TEST ${1} __${E}"; 
396        echo; 
397    fi
398}
399log_end () {
400    if [ -n "$verbose" ]; then
401        echo; 
402        echo "${S}__ END   TEST ${1} __${E}"; 
403        echo; 
404    fi
405}
406
407# This looks silly, but with solaris10/i386 on vmware,
408# 'sleep' occasionally does not sleep...
409
410one_sec_sleep () {
411    onesdate=`date`
412    onestest=0
413    while [ $onestest -eq 0 ]; do
414        sleep 1
415        twosdate=`date`
416        if [ "x$twosdate" = "x$onesdate" ]; then 
417            onestest=0
418        else
419            onestest=1
420        fi
421    done
422}
423
424five_sec_sleep () {
425    for f in 1 2 3 4 5; do
426        one_sec_sleep
427    done
428}
429
430do_cleanup () {
431    rm -f testrc_1.dyn
432    rm -f testrc_2
433    rm -f testrc_22
434    rm -f testrc_1ext
435    rm -f ./.samhain_file
436    rm -f ./.samhain_log*
437    rm -f ./.samhain_lock*
438    test -d testrun_testdata && chmod -f -R 0700 testrun_testdata
439    test -d .quarantine && rm -rf .quarantine
440    rm -rf testrun_testdata
441    rm -f test_log_db
442    rm -f test_log_prelude
443    rm -f test_log_valgrind*
444    rm -f test_log_yulectl
445    rm -f yule.html
446    rm -f yule.html2
447    rm -f test_dnmalloc
448}
449
450print_summary ()
451{
452    # let "gcount = okcount + skipcount + failcount" >/dev/null;
453    gcount=$MAXTEST;
454    let "failcount = gcount - okcount - skipcount" >/dev/null;
455
456    [ -z "$quiet" ] && { 
457        echo
458        echo "__ ${S}Tests: ${gcount}  Ok: ${okcount} Skipped: ${skipcount} Failed: ${failcount}${E}"
459    }
460    if [ $failcount -eq 0 ]; then
461        [ -z "$quiet" ] && { echo "__ ${G}All tests passed successfully.${E}"; echo; }
462    elif [ $failcount -eq 1 ]; then
463        [ -z "$quiet" ] && { echo "__ ${R}There was 1 failure.${E}"; echo; }
464    else
465        [ -z "$quiet" ] && { echo "__ ${R}There were $failcount failures.${E}"; echo; }
466    fi
467    [ -z "$cleanup" ] || do_cleanup;
468}
469
470find_path () { (   
471    save_IFS=$IFS; IFS=:
472
473    for dir in $PATH; do
474        IFS=$as_save_IFS
475        test -z "$dir" && dir=.
476        if test -f "$dir/$1"; then
477            echo "$dir/$1";
478            break;
479        fi
480    done
481    IFS=${save_IFS};
482); }
483
484find_hostname () {
485
486    uname -a | grep Linux >/dev/null
487    if [ $? -eq 0 ]; then
488        tmp=`hostname -f 2>/dev/null`
489        if [ $? -ne 0 ]; then
490            tmp=`hostname 2>/dev/null`
491        fi
492    else
493        tmp=`hostname 2>/dev/null`
494    fi
495    if [ -z "$tmp" ]; then
496        tmp="localhost"
497    fi
498    #
499    # first one is hostname, others are aliases
500    #
501    tmp2=`cat /etc/hosts | egrep "^ *[0123456789].* $tmp" | awk '{ print $2 }'`
502    if [ -z "$tmp2" ]; then
503        echo "$tmp"
504    else
505        echo "$tmp2"
506    fi
507}
508
509rm -f ./test_log
510
511# first one is hostname, others are aliases
512#
513hostname=`cat /etc/hosts | egrep "^ *127.0.0.1" | awk '{ print $2 }'`
514if [ x"$hostname" = xlocalhost ]; then
515    hostname="127.0.0.1"
516fi
517
518# Seems that 'valgrind' causes random hangs :-(
519#
520if [ -z "$usevalgrind" ]; then
521    VALGRIND=
522else
523    VALGRIND=`find_path valgrind`;
524fi
525[ -z "$VALGRIND" ] || { 
526    VALGRIND="$VALGRIND --quiet --tool=memcheck --suppressions=.test.supp"; 
527    export VALGRIND;
528    [ -z "$verbose" ] || log_msg_ok "using valgrind"
529cat > ".test.supp" <<End-of-data
530#
531# there are unitialized bytes in the struct...
532#
533{
534   pushdata_01
535   Memcheck:Param
536   write(buf)
537   obj:/lib/ld-*.so
538   fun:sh_hash_pushdata
539   fun:sh_files_filecheck
540   fun:sh_dirs_chk
541}
542{
543   pushdata_02
544   Memcheck:Param
545   write(buf)
546   obj:/lib/ld-*.so
547   fun:sh_hash_pushdata
548   fun:sh_files_filecheck
549   fun:sh_files_checkdir
550}
551{
552   pushdata_03
553   Memcheck:Param
554   write(buf)
555   obj:/lib/ld-*.so
556   fun:sh_hash_pushdata
557   fun:sh_hash_writeout
558   fun:main
559}
560
561End-of-data
562}
563
564if test x$1 = x1; then
565    . ${SCRIPTDIR}/testcompile.sh
566    testcompile
567    print_summary
568    exit $?
569fi
570if test x$1 = x2; then
571    . ${SCRIPTDIR}/testhash.sh
572    testhash
573    print_summary
574    exit $?
575fi
576if test x$1 = x3; then
577    . ${SCRIPTDIR}/testrun_1.sh
578    testrun1
579    print_summary
580    exit $?
581fi
582if test x$1 = x4; then
583    . ${SCRIPTDIR}/testrun_1.sh
584    . ${SCRIPTDIR}/testrun_1a.sh
585    testrun1a
586    print_summary
587    exit $?
588fi
589if test x$1 = x5; then
590    . ${SCRIPTDIR}/testext.sh
591    testext0
592    print_summary
593    exit $?
594fi
595if test x$1 = x6; then
596    . ${SCRIPTDIR}/testtimesrv.sh
597    testtime0
598    print_summary
599    exit $?
600fi
601if test x$1 = x7; then
602    . ${SCRIPTDIR}/testrun_1b.sh
603    testrun1b
604    print_summary
605    exit $?
606fi
607if test x$1 = x8; then
608    . ${SCRIPTDIR}/testrun_1.sh
609    . ${SCRIPTDIR}/testrun_1c.sh
610    testrun1c
611    print_summary
612    exit $?
613fi
614if test x$1 = x9; then
615    . ${SCRIPTDIR}/testrun_1.sh
616    . ${SCRIPTDIR}/testrun_1d.sh
617    testrun1d
618    print_summary
619    exit $?
620fi
621if test x$1 = x10; then
622    . ${SCRIPTDIR}/testrun_1.sh
623    . ${SCRIPTDIR}/testrun_1e.sh
624    testrun1e
625    print_summary
626    exit $?
627fi
628if test x$1 = x20; then
629    . ${SCRIPTDIR}/testrun_2.sh
630    testrun2 $hostname
631    print_summary
632    exit $?
633fi
634if test x$1 = x21; then
635    . ${SCRIPTDIR}/testrun_2a.sh
636    testrun2a $hostname
637    print_summary
638    exit $?
639fi
640if test x$1 = x22; then
641    . ${SCRIPTDIR}/testrun_2a.sh
642    . ${SCRIPTDIR}/testrun_2b.sh
643    testrun2b $hostname
644    print_summary
645    exit $?
646fi
647if test x$1 = x23; then
648    . ${SCRIPTDIR}/testrun_2a.sh
649    . ${SCRIPTDIR}/testrun_2c.sh
650    testrun2c $hostname
651    print_summary
652    exit $?
653fi
654if test x$1 = x24; then
655    . ${SCRIPTDIR}/testrun_2a.sh
656    . ${SCRIPTDIR}/testrun_2d.sh
657    testrun2d $hostname
658    print_summary
659    exit $?
660fi
661if test x$1 = xall; then
662    TEST_MAX=0
663    . ${SCRIPTDIR}/testcompile.sh
664    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
665    . ${SCRIPTDIR}/testhash.sh
666    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
667    . ${SCRIPTDIR}/testrun_1.sh
668    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
669    . ${SCRIPTDIR}/testrun_1a.sh
670    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
671    . ${SCRIPTDIR}/testext.sh
672    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
673    . ${SCRIPTDIR}/testtimesrv.sh
674    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
675    . ${SCRIPTDIR}/testrun_1b.sh
676    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
677    . ${SCRIPTDIR}/testrun_1c.sh
678    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
679    . ${SCRIPTDIR}/testrun_1d.sh
680    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
681    . ${SCRIPTDIR}/testrun_1e.sh
682    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
683    . ${SCRIPTDIR}/testrun_2.sh
684    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
685    . ${SCRIPTDIR}/testrun_2a.sh
686    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
687    . ${SCRIPTDIR}/testrun_2b.sh
688    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
689    . ${SCRIPTDIR}/testrun_2c.sh
690    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
691    . ${SCRIPTDIR}/testrun_2d.sh
692    let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
693    #
694    # ${SCRIPTDIR}/testtimesrv.sh
695    # ${SCRIPTDIR}/testrun_1b.sh
696    # ${SCRIPTDIR}/testrun_2.sh $2
697    # ${SCRIPTDIR}/testrun_2a.sh $2
698    #
699    MAXTEST=${TEST_MAX}; export MAXTEST
700    testcompile
701    testhash
702    #
703    . ${SCRIPTDIR}/testrun_1.sh
704    MAXTEST=${TEST_MAX}; export MAXTEST
705    testrun1
706    #
707    . ${SCRIPTDIR}/testrun_1a.sh
708    MAXTEST=${TEST_MAX}; export MAXTEST
709    testrun1a
710    #
711    testext0
712    #
713    . ${SCRIPTDIR}/testtimesrv.sh
714    MAXTEST=${TEST_MAX}; export MAXTEST
715    testtime0
716    #
717    . ${SCRIPTDIR}/testrun_1b.sh
718    MAXTEST=${TEST_MAX}; export MAXTEST
719    testrun1b
720    #
721    . ${SCRIPTDIR}/testrun_1.sh
722    . ${SCRIPTDIR}/testrun_1c.sh
723    MAXTEST=${TEST_MAX}; export MAXTEST
724    testrun1c
725    #
726    . ${SCRIPTDIR}/testrun_1.sh
727    . ${SCRIPTDIR}/testrun_1d.sh
728    MAXTEST=${TEST_MAX}; export MAXTEST
729    testrun1d
730    #
731    . ${SCRIPTDIR}/testrun_1.sh
732    . ${SCRIPTDIR}/testrun_1e.sh
733    MAXTEST=${TEST_MAX}; export MAXTEST
734    testrun1e
735    #
736    . ${SCRIPTDIR}/testrun_2.sh
737    MAXTEST=${TEST_MAX}; export MAXTEST
738    testrun2 $hostname
739    #
740    . ${SCRIPTDIR}/testrun_2a.sh
741    MAXTEST=${TEST_MAX}; export MAXTEST
742    testrun2a $hostname
743    #
744    . ${SCRIPTDIR}/testrun_2b.sh
745    MAXTEST=${TEST_MAX}; export MAXTEST
746    testrun2b $hostname
747    #
748    . ${SCRIPTDIR}/testrun_2c.sh
749    MAXTEST=${TEST_MAX}; export MAXTEST
750    testrun2c $hostname
751    #
752    . ${SCRIPTDIR}/testrun_2d.sh
753    MAXTEST=${TEST_MAX}; export MAXTEST
754    testrun2d $hostname
755    #
756    print_summary
757    exit 0
758fi
759
760usage;
761
762exit 1;
763
764# gpg -a --clearsign --not-dash-escaped testrc.gpg
765# gpg -a --clearsign --not-dash-escaped .samhain_file
766# tar czvf foo.tgz testrc.gpg.asc .samhain_file.asc
767# cat foo.tgz >>test/test.sh
768
769__ARCHIVE_FOLLOWS__
770‹£ÉúDí•ÏoãDÇœ UbN\'€‘8*Û:IӔJ‘pãÔ-›ŠùєBU!o2M
771þ‘z&éf/ˆ‚#§šgGâßa%7U$ĉHš‡U{àÚšã$M¶Ûª‚.¬4Ùϛ™÷Þ×3ž!39•Î€§dœänž2;3ã”.Ÿ—ïÕ]ýzïÕëóq.~Æ7ëqû\³môž<äo'q²˜È&„œ)+:2¯ê‡L|…Ÿ˜aù’p×a!(-‡aDŠÀø²Šp%R°×–dŒ3ãK‚„
772"ÒZ'åJÍÃOŒ,ÔJAIÏF$H˜CŠ²‡dGÁPCËiØ1•ûY‚ðØVTäŸF$        ÀÛP74‘¬ªyši§  ¿iG(«š        LgeS։ƒzGLÀŠd{ŠžéEgÀˆËi:K9%‰ðˆi‡ú­kIє‚9€“8r&ù-pþ– x’ŸŽ™\㊒S«ºš·ž'4nœÈöo
773ËiÝ0QØÐÑžýâc]Ö_PUÿžlêCs?$ýT÷Ð(*&ö+ú¶1Ž„e:ý‘`“&³VdE=o¥ãušyhèÇÈcuÄÖë1•‹×6WœÜ¢Œ4C§ÝhTâä•ÜAÉ/Ö
774ù]nÞ1ÆP2kbÅÐCԁêwõŒ!ÃÈô:Íò †2†I³ª*"B„~ºF@Àñƒ³ÚÝ®ü=§Î®.npÉ
775Ö±Áâ]GœhóƒšsM¹§Œð])œ˜)zöÁ{(✾]NâUi—×òÂKùÔ'|ÄÇp4çÑøûá{Þ¹ð¯GCº›V–}ÑtE4w¬ðáXÄ÷0ê‘Ð
776ˆŠ)Xöÿ¶DU÷ †ÅËÒû¯n
777ËÚÝú>sþ[:®ÙÿÝ^Þ{ŸÿÏxœ^gÿ÷¹ÙþÿBx1ûÿO¿üÐùœý˜¯œ:žÃœ_y>¬‰^ýËïOE§,>/G)ŒÀÑö7žîÑÑÙ³ú.µ>>é>ý£[p.®|Cèðýã³'à.(|u¹œ;ô.§&žý;ýú[?öÓÿî›øXù\9Žýfr
778ݧ…nÁ¹žN­Z­•ÊõÃÃfѶËõR§]Žª¥b»Ø²Úë°T¬5:õF±TkÚ­Ž]ÈÙÿíèôìôQÉ79î끚ǭŸ(øhŒ|®šÏÑš(»¬b«}xPjV«õZµa7êµJŲJ•r»b[Tfë VªÖ+TߏÎN®Ñ$Ñu‡?ì×OšÊߟ³à”’Œp¥&ÚïhjØ
779«ÒŽ«õN˲[Z³U/µ*õš]?,µ*öA£ZîXV¥n7;É:=îþùë“cg®žúrR ZþÅS\%c§ž7„{¢äâI`nÝ+
780ž‡©D@ÌMûB‰˜gÝéœEa-’^ú|7¢EgƒædFü8(íFdLOñɄûŸâƒÁ`0ƒÁ`0ƒÁ`0FŸ¿ès((
Note: See TracBrowser for help on using the repository browser.