source: trunk/test/test.sh@ 264

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

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

File size: 19.4 KB
RevLine 
[1]1#! /bin/sh
2
[27]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
[30]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
[19]111isok=`test -t 1 2>&1 | wc -c`
112if [ "$isok" -eq 0 ]; then
113 test -t 1
114 isok=$?
115fi
[1]116
117# The following two are the ANSI sequences for start and end embolden
[19]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
[1]136
[19]137
138usage() {
139 echo "test.sh [options] <test_number> [hostname]"
[68]140 echo " [-q|--quiet|-v|--verbose] [-s|--stoponerr] [-n|--no-cleanup]"
[19]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"
[22]150 echo " ${S}test.sh 8${E} -- Suidcheck"
[68]151 echo " ${S}test.sh 9${E} -- Process check"
152 echo " ${S}test.sh 10${E} -- Port check"
[19]153
[68]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)"
[22]159 echo " ${S}test.sh all${E} -- All tests"
160}
161scripts () {
[19]162 echo
[22]163 echo "Scripts used by tests:"
[19]164 echo " (1) testcompile.sh (2) testhash.sh (3) testrun_1.sh (4) testrun_1a.sh"
[22]165 echo " (5) testext.sh (6) testtimesrv.sh (7) testrun_1b.sh (8) testrun_1c.sh"
[128]166 echo " (9) testrun_1d.sh (10) testrun_1e.sh"
[68]167 echo " (20) testrun_2.sh (21) testrun_2a.sh (22) testrun_2b.sh (23) testrun_2c.sh"
168 echo " (24) testrun_2d.sh"
[19]169}
170
171#
172# Option parsing
173#
174verbose=
175quiet=
176stoponerr=
177color=auto
178cleanup=on
179doall=
[22]180usevalgrind=
[19]181
182while [ $# -gt 0 ]
183do
184 case "$1" in
185 -h|--help) usage; exit 0;;
[22]186 --scripts) usage; scripts; exit 0;;
[19]187 -v|--verbose) verbose=on; quiet= ;;
188 -q|--quiet) quiet=on; verbose= ;;
189 -s|--stoponerr) stoponerr=on;;
[68]190 -n|--no-cleanup) cleanup= ;;
[19]191 --really-all) doall=on;;
[22]192 --valgrind) usevalgrind=on;;
[19]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
[1]228SCRIPTDIR=.
229
[19]230#
231# 'make test' will copy the 'test' subdirectory and replace TEST_SRCDIR
232#
[1]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
[19]258 echo "Please use --srcdir=DIR, where DIR should be the"
[1]259 echo "top directory in the samhain source tree."
260 exit 1
261 fi
262 fi
263else
[19]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"
[1]269 else
[19]270 echo "Please use --srcdir=DIR, where DIR should be the"
271 echo "top directory in the samhain source tree."
272 exit 1
[1]273 fi
274fi
275
276export SCRIPTDIR
277
278PW_DIR=`pwd`; export PW_DIR
[29]279
[19]280#
[29]281# group/world writeable will cause problems
[19]282#
[29]283chmod go-w .
[19]284#
[29]285#
286#
[128]287if test x$UID != x -a x$UID != x0; then
[19]288 TRUST="--with-trusted=0,2,$UID"
289else
[128]290 TRUST="--with-trusted=0,2,1000"
[19]291fi
292export TRUST
293#
294# find a good 'make'
295#
296MAKE=`which gmake`
297if test "x$?" = x1 ; then
[170]298 MAKE="make -s -j 3"
[19]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
[1]315
[19]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
[171]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
[19]371 fi
372}
373
374log_fail () {
[68]375 [ -z "$quiet" ] && log_msg "$1" "$2" failure "$3";
[19]376 let "failcount = failcount + 1" >/dev/null;
377 test -z "$stoponerr" || exit 1;
378}
379log_ok () {
[68]380 [ -z "$quiet" ] && log_msg "$1" "$2" success "$3";
[19]381 let "okcount = okcount + 1" >/dev/null;
382}
383log_skip () {
[68]384 [ -z "$quiet" ] && log_msg "$1" "$2" skipped "$3";
[19]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
[51]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
[19]430do_cleanup () {
431 rm -f testrc_1.dyn
432 rm -f testrc_2
[27]433 rm -f testrc_22
[235]434 rm -f testrc_1ext
[19]435 rm -f ./.samhain_file
436 rm -f ./.samhain_log*
[27]437 rm -f ./.samhain_lock*
[172]438 test -d testrun_testdata && chmod -f -R 0700 testrun_testdata
[22]439 test -d .quarantine && rm -rf .quarantine
440 rm -rf testrun_testdata
[19]441 rm -f test_log_db
442 rm -f test_log_prelude
[27]443 rm -f test_log_valgrind*
[22]444 rm -f test_log_yulectl
445 rm -f yule.html
[27]446 rm -f yule.html2
[171]447 rm -f test_dnmalloc
[19]448}
449
450print_summary ()
451{
[68]452 # let "gcount = okcount + skipcount + failcount" >/dev/null;
453 gcount=$MAXTEST;
454 let "failcount = gcount - okcount - skipcount" >/dev/null;
455
[19]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 () {
[174]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
[19]493 tmp=`hostname 2>/dev/null`
494 fi
495 if [ -z "$tmp" ]; then
496 tmp="localhost"
497 fi
[30]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
[19]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
[22]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
[1]564if test x$1 = x1; then
[19]565 . ${SCRIPTDIR}/testcompile.sh
566 testcompile
567 print_summary
568 exit $?
[1]569fi
570if test x$1 = x2; then
[19]571 . ${SCRIPTDIR}/testhash.sh
572 testhash
573 print_summary
574 exit $?
[1]575fi
576if test x$1 = x3; then
[19]577 . ${SCRIPTDIR}/testrun_1.sh
578 testrun1
579 print_summary
580 exit $?
[1]581fi
582if test x$1 = x4; then
[19]583 . ${SCRIPTDIR}/testrun_1.sh
584 . ${SCRIPTDIR}/testrun_1a.sh
585 testrun1a
586 print_summary
587 exit $?
[1]588fi
589if test x$1 = x5; then
[19]590 . ${SCRIPTDIR}/testext.sh
591 testext0
592 print_summary
593 exit $?
[1]594fi
595if test x$1 = x6; then
[19]596 . ${SCRIPTDIR}/testtimesrv.sh
597 testtime0
598 print_summary
599 exit $?
[1]600fi
601if test x$1 = x7; then
[19]602 . ${SCRIPTDIR}/testrun_1b.sh
603 testrun1b
604 print_summary
605 exit $?
[1]606fi
[22]607if test x$1 = x8; then
608 . ${SCRIPTDIR}/testrun_1.sh
609 . ${SCRIPTDIR}/testrun_1c.sh
610 testrun1c
611 print_summary
612 exit $?
613fi
[68]614if test x$1 = x9; then
615 . ${SCRIPTDIR}/testrun_1.sh
616 . ${SCRIPTDIR}/testrun_1d.sh
617 testrun1d
618 print_summary
619 exit $?
620fi
[1]621if test x$1 = x10; then
[68]622 . ${SCRIPTDIR}/testrun_1.sh
623 . ${SCRIPTDIR}/testrun_1e.sh
624 testrun1e
625 print_summary
626 exit $?
627fi
628if test x$1 = x20; then
[19]629 . ${SCRIPTDIR}/testrun_2.sh
630 testrun2 $hostname
631 print_summary
632 exit $?
[1]633fi
[68]634if test x$1 = x21; then
[19]635 . ${SCRIPTDIR}/testrun_2a.sh
636 testrun2a $hostname
637 print_summary
638 exit $?
[1]639fi
[68]640if test x$1 = x22; then
[19]641 . ${SCRIPTDIR}/testrun_2a.sh
642 . ${SCRIPTDIR}/testrun_2b.sh
643 testrun2b $hostname
644 print_summary
645 exit $?
[1]646fi
[68]647if test x$1 = x23; then
[19]648 . ${SCRIPTDIR}/testrun_2a.sh
649 . ${SCRIPTDIR}/testrun_2c.sh
650 testrun2c $hostname
651 print_summary
652 exit $?
[1]653fi
[68]654if test x$1 = x24; then
[19]655 . ${SCRIPTDIR}/testrun_2a.sh
656 . ${SCRIPTDIR}/testrun_2d.sh
657 testrun2d $hostname
658 print_summary
659 exit $?
[1]660fi
661if test x$1 = xall; then
[19]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
[22]677 . ${SCRIPTDIR}/testrun_1c.sh
678 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[68]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
[19]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 #
[22]721 . ${SCRIPTDIR}/testrun_1.sh
722 . ${SCRIPTDIR}/testrun_1c.sh
723 MAXTEST=${TEST_MAX}; export MAXTEST
724 testrun1c
725 #
[68]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 #
[19]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
[1]758fi
759
[19]760usage;
[1]761
[19]762exit 1;
[1]763
[60]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
[19]769__ARCHIVE_FOLLOWS__
[60]770‹£ÉúDí•ÏoãDÇœ UbN\'€‘8*Û:IӔJ‘pãÔ-›ŠùєBU!o2M
771þ‘z&éf/ˆ‚#§šgGâßa%7U$ĉHš‡U{àÚš
772ã$M¶Ûª‚.¬4Ù
773ϛ™÷Þ×3ž!39•Î€§dœänž2;3ã”.Ÿ—ïÕ]ýzïÕëóq.~Æ7ëqû\³
774môž<
775äo'q²˜È&„œ)+:2¯ê‡L|…
776Ÿ˜aù’p×a!(-‡aDŠÀø²Šp%
777R°×–dŒ3ãK‚
778„
779"ÒZ'å
[128]780JÍÃOŒ,ÔJAIÏF$H
781˜CŠ²‡dGÁPCËiØ1•ûY‚ðØVTäŸF$ ÀÛP74‘¬ªyši§ ¿iG(«š LgeS։ƒzGLÀŠd{ŠžéEgÀˆËi:K9%‰ðˆi‡ú­kIє‚9€“8r&ù-pþ– 
782x’ŸŽ™\㊒S«ºš·ž'4nœÈöo
783ËiÝ0QØÐÑžýâc]Ö_PUÿžlêCs?$ýT÷Ð(*&ö+ú¶1Ž„e:ý‘`“&³VdE=o¥ãušyhèÇÈcuÄÖë1•‹×6WœÜ¢Œ4C§ÝhTâä•ÜAÉ/Ö
784ù]nÞ1ÆP2kbÅÐCԁêwõŒ!ÃÈô:Íò †2†I³ª*"B„~ºF@Àñƒ³ÚÝ®ü=§Î
785®.npÉ
786Ö±Áâ]GœhóƒšsM¹§Œð])œ˜)zöÁ{(✾]
787NâUi—×òÂKùÔ'|ÄÇp4çÑøûá{Þ¹ð¯GCº›V–}ÑtE4w¬ðáXÄ÷0ê‘Ð
788ˆŠ)Xöÿ¶DU÷ †ÅËÒû¯n
789ËÚÝú>sþ[:®ÙÿÝ^Þ{ŸÿÏxœ^gÿ÷¹ÙþÿBx1ûÿO¿üÐùœý˜¯œ:žÃ
790œ_y>¬‰^ýËïOE§,>/G)ŒÀÑö7žîÑÑÙ³ú.µ>>é>ý£[p.®|Cèðýã³'à.(|u¹œ;ô.§&žý;ýú[?öÓÿî›øXù\9Žýfr
791ݧ…
792nÁ¹žN­Z­•ÊõÃÃfѶËõR§]Žª¥b»Ø²Ú
793ë°T¬5:õF±TkÚ­Ž]ÈÙÿíèôìôQÉ79î끚ǭŸ(øhŒ|®šÏÑš(»\Ž¬b«}xPjV«õZµa7êµJŲJ•r»b[Tfë VªÖ+TߏÎN®Ñ$Ñu‡?ì×OšÊߟ³à”’Œp¥&ÚïhjØ
794«ÒŽ«õN˲[Z³U/µ*õš]?,µ*öA£ZîXV¥n7;É:=îþùë“cg®žúrR ZþÅS\%c§ž7„{¢äâI`nÝ+
795ž‡©D@ÌMûB‰˜gÝéœEa-’^ú|7¢EgƒædFü8(íFdLOñɄ
796ûŸâ
797ƒÁ`0
798ƒÁ`0
799ƒÁ`0
800FŸ¿ès((
Note: See TracBrowser for help on using the repository browser.