source: trunk/test/test.sh@ 522

Last change on this file since 522 was 481, checked in by katerina, 9 years ago

Enhancements and fixes for tickets #374, #375, #376, #377, #378, and #379.

File size: 21.8 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"
[481]153 echo " ${S}test.sh 11${E} -- CL verify option"
154 echo " ${S}test.sh 12${E} -- CL create DeltaDB"
155 echo " ${S}test.sh 13${E} -- CL create/verify partial DB"
[19]156
[68]157 echo " ${S}test.sh 20${E} -- Test c/s init/check (testrc_2.in)"
158 echo " ${S}test.sh 21${E} -- Test full c/s init/check (testrc_2.in)"
159 echo " ${S}test.sh 22${E} -- Test full c/s w/gpg (testrc_2.in)"
160 echo " ${S}test.sh 23${E} -- Test full c/s w/mysql (testrc_2.in)"
161 echo " ${S}test.sh 24${E} -- Test full c/s w/postgres (testrc_2.in)"
[481]162 echo " ${S}test.sh 25${E} -- Test server w/yulectl (testrc_2.in)"
163 echo " ${S}test.sh 26${E} -- Test c/s case one (testrc_2.in)"
164 echo " ${S}test.sh 27${E} -- Test c/s case two (testrc_2.in)"
[22]165 echo " ${S}test.sh all${E} -- All tests"
166}
167scripts () {
[19]168 echo
[22]169 echo "Scripts used by tests:"
[19]170 echo " (1) testcompile.sh (2) testhash.sh (3) testrun_1.sh (4) testrun_1a.sh"
[22]171 echo " (5) testext.sh (6) testtimesrv.sh (7) testrun_1b.sh (8) testrun_1c.sh"
[481]172 echo " (9) testrun_1d.sh (10) testrun_1e.sh (11) testrun_1f.sh (12) testrun_1g.sh"
173 echo " (13) testrun_1h.sh"
[68]174 echo " (20) testrun_2.sh (21) testrun_2a.sh (22) testrun_2b.sh (23) testrun_2c.sh"
[481]175 echo " (24) testrun_2d.sh (25) testrun_2e.sh (26) testrun_2f.sh (27) testrun_2g.sh"
[19]176}
177
178#
179# Option parsing
180#
181verbose=
182quiet=
183stoponerr=
184color=auto
185cleanup=on
186doall=
[22]187usevalgrind=
[19]188
189while [ $# -gt 0 ]
190do
191 case "$1" in
192 -h|--help) usage; exit 0;;
[22]193 --scripts) usage; scripts; exit 0;;
[19]194 -v|--verbose) verbose=on; quiet= ;;
195 -q|--quiet) quiet=on; verbose= ;;
196 -s|--stoponerr) stoponerr=on;;
[68]197 -n|--no-cleanup) cleanup= ;;
[19]198 --really-all) doall=on;;
[22]199 --valgrind) usevalgrind=on;;
[19]200 --srcdir=*) TOP_SRCDIR=`echo $1 | sed s,--srcdir=,,`; export TOP_SRCDIR;;
201 --color=*)
202 arg=`echo $1 | sed s,--color=,,`
203 case $arg in
204 auto) ;;
205 never|none|no)
206 S=
207 R=
208 G=
209 B=
210 E=
211 ;;
212 always|yes)
213 S='[1;30m'
214 R=[31m
215 G=[32m
216 G=[36m
217 E=[m
218 ;;
219 *) echo "Invalid argument $1"; exit 1;;
220 esac
221 ;;
222 -*) echo "Invalid argument $1"; exit 1;;
223 *) break;;
224 esac
225 shift
226done
227
228export verbose
229export quiet
230export stoponerr
231export cleanup
232export doall
233export S; export R; export G; export B; export E;
234
[1]235SCRIPTDIR=.
236
[19]237#
238# 'make test' will copy the 'test' subdirectory and replace TEST_SRCDIR
239#
[1]240TEST_SRCDIR="XXXSRCXXX";
241if test "x${TOP_SRCDIR}" = x; then
242 # not within source tree, and not called with 'make testN'
243 if test -f "${TEST_SRCDIR}/src/samhain.c"; then
244 TOP_SRCDIR="${TEST_SRCDIR}"; export TOP_SRCDIR
245 if test -f test/testcompile.sh; then
246 SCRIPTDIR=test
247 fi
248 # not within source tree, not called by 'make', and in 'test' subdir
249 elif test -f "../${TEST_SRCDIR}/src/samhain.c"; then
250 cd ..
251 SCRIPTDIR=test
252 TOP_SRCDIR="${TEST_SRCDIR}"; export TOP_SRCDIR
253 # within source tree, and not called with 'make testN'
254 else
255 if test -f ../src/samhain.c; then
256 cd ..
257 SCRIPTDIR=test
258 TOP_SRCDIR=.
259 export TOP_SRCDIR
260 elif test -f ./src/samhain.c; then
261 SCRIPTDIR=test
262 TOP_SRCDIR=.
263 export TOP_SRCDIR
264 else
[19]265 echo "Please use --srcdir=DIR, where DIR should be the"
[1]266 echo "top directory in the samhain source tree."
267 exit 1
268 fi
269 fi
270else
[19]271 # called by make, or with --srcdir=TOP_SRCDIR
272 if test -f "${TOP_SRCDIR}/src/samhain.c"; then
273 SCRIPTDIR="${TOP_SRCDIR}/test"
274 elif test -f "../${TOP_SRCDIR}/src/samhain.c"; then
275 cd ..; SCRIPTDIR="${TOP_SRCDIR}/test"
[1]276 else
[19]277 echo "Please use --srcdir=DIR, where DIR should be the"
278 echo "top directory in the samhain source tree."
279 exit 1
[1]280 fi
281fi
282
283export SCRIPTDIR
284
285PW_DIR=`pwd`; export PW_DIR
[29]286
[19]287#
[29]288# group/world writeable will cause problems
[19]289#
[29]290chmod go-w .
[19]291#
[29]292#
293#
[128]294if test x$UID != x -a x$UID != x0; then
[19]295 TRUST="--with-trusted=0,2,$UID"
296else
[128]297 TRUST="--with-trusted=0,2,1000"
[19]298fi
299export TRUST
300#
301# find a good 'make'
302#
303MAKE=`which gmake`
304if test "x$?" = x1 ; then
[170]305 MAKE="make -s -j 3"
[19]306else
307 MAKE=`which gmake | sed -e "s%\([a-z:]\) .*%\1%g"`
308 if test "x$MAKE" = x; then
309 MAKE="make -s"
310 elif test "x$MAKE" = xno; then
311 MAKE="make -s"
312 else
313 if test "x$MAKE" = "xwhich:"; then
314 MAKE="make -s"
315 else
316 MAKE="gmake -s"
317 gmake -v >/dev/null 2>&1 || MAKE="make -s"
318 fi
319 fi
320fi
321export MAKE
[1]322
[19]323failcount=0
324okcount=0
325skipcount=0
326global_count=0
327last_count=0
328
329# args: #test, #total, status, optional msg
330log_msg ()
331{
332 if [ x"$COLUMNS" != x ]; then
333 TERMWIDTH=$COLUMNS
334 elif [ x"$COLS" != x ]; then
335 TERMWIDTH=$COLS
336 else
337 TERMWIDTH=80
338 fi
339 cols=66;
340 #
341 if [ $1 -eq 0 ]; then
342 msg=" ${4}"
343 else
344 if [ ${1} -eq 1 ]; then
345 global_count=${last_count}
346 fi
347 let "v = $1 + global_count" >/dev/null
348 last_count=${v}
349 dd=''; if [ $v -lt 10 ]; then dd=" "; fi
350 dt=''; if [ $2 -lt 10 ]; then dt=" "; fi
351 if [ -z "$4" ]; then
352 msg=" test ${dd}${v}/${dt}${2}"
353 else
354 msg=" test ${dd}${v}/${dt}${2} ${4}"
355 fi
356 fi
357 #
358 if [ x"$3" = xfailure ]; then
359 ccode=$R
360 elif [ x"$3" = xsuccess ]; then
361 ccode=$G
362 else
363 ccode=$B
364 fi
365 if [ -z "${R}" ]; then
366 echo " [${3}] ${msg}"
367 else
368 # len=${#...} is not bourne shell
369 # also, need to account for terminal control sequences
370 len=`echo "$msg" | awk '/1;30m/ { print length()-10; }; !/1;30m/ { print length();}'`
371 let "cols = cols - len" >/dev/null
[171]372 if [ $cols -ge 0 ]; then
373 moveto='['$cols'C'
374 echo "${msg}${moveto}${ccode}[${3}]${E}"
375 else
376 echo "${msg}${ccode}[${3}]${E}"
377 fi
[19]378 fi
379}
380
381log_fail () {
[68]382 [ -z "$quiet" ] && log_msg "$1" "$2" failure "$3";
[19]383 let "failcount = failcount + 1" >/dev/null;
384 test -z "$stoponerr" || exit 1;
385}
386log_ok () {
[68]387 [ -z "$quiet" ] && log_msg "$1" "$2" success "$3";
[19]388 let "okcount = okcount + 1" >/dev/null;
389}
390log_skip () {
[68]391 [ -z "$quiet" ] && log_msg "$1" "$2" skipped "$3";
[19]392 let "skipcount = skipcount + 1" >/dev/null;
393}
394
395log_msg_fail () { log_msg 0 0 failure "$1"; }
396log_msg_ok () { log_msg 0 0 success "$1"; }
397log_msg_skip () { log_msg 0 0 skipped "$1"; }
398
399log_start () {
400 if [ -z "$quiet" ]; then
401 echo;
402 echo "${S}__ START TEST ${1} __${E}";
403 echo;
404 fi
405}
406log_end () {
407 if [ -n "$verbose" ]; then
408 echo;
409 echo "${S}__ END TEST ${1} __${E}";
410 echo;
411 fi
412}
413
[51]414# This looks silly, but with solaris10/i386 on vmware,
415# 'sleep' occasionally does not sleep...
416
417one_sec_sleep () {
418 onesdate=`date`
419 onestest=0
420 while [ $onestest -eq 0 ]; do
421 sleep 1
422 twosdate=`date`
423 if [ "x$twosdate" = "x$onesdate" ]; then
424 onestest=0
425 else
426 onestest=1
427 fi
428 done
429}
430
431five_sec_sleep () {
432 for f in 1 2 3 4 5; do
433 one_sec_sleep
434 done
435}
436
[19]437do_cleanup () {
438 rm -f testrc_1.dyn
439 rm -f testrc_2
[27]440 rm -f testrc_22
[235]441 rm -f testrc_1ext
[19]442 rm -f ./.samhain_file
[481]443 rm -f file.*.*-*-*-*-*
[19]444 rm -f ./.samhain_log*
[27]445 rm -f ./.samhain_lock*
[172]446 test -d testrun_testdata && chmod -f -R 0700 testrun_testdata
[22]447 test -d .quarantine && rm -rf .quarantine
448 rm -rf testrun_testdata
[19]449 rm -f test_log_db
450 rm -f test_log_prelude
[27]451 rm -f test_log_valgrind*
[22]452 rm -f test_log_yulectl
453 rm -f yule.html
[27]454 rm -f yule.html2
[171]455 rm -f test_dnmalloc
[481]456 rm -f tmp_list_file
457 rm -f test_filter.txt
[19]458}
459
460print_summary ()
461{
[68]462 # let "gcount = okcount + skipcount + failcount" >/dev/null;
463 gcount=$MAXTEST;
464 let "failcount = gcount - okcount - skipcount" >/dev/null;
465
[19]466 [ -z "$quiet" ] && {
467 echo
468 echo "__ ${S}Tests: ${gcount} Ok: ${okcount} Skipped: ${skipcount} Failed: ${failcount}${E}"
469 }
470 if [ $failcount -eq 0 ]; then
471 [ -z "$quiet" ] && { echo "__ ${G}All tests passed successfully.${E}"; echo; }
472 elif [ $failcount -eq 1 ]; then
473 [ -z "$quiet" ] && { echo "__ ${R}There was 1 failure.${E}"; echo; }
474 else
475 [ -z "$quiet" ] && { echo "__ ${R}There were $failcount failures.${E}"; echo; }
476 fi
477 [ -z "$cleanup" ] || do_cleanup;
478}
479
480find_path () { (
481 save_IFS=$IFS; IFS=:
482
483 for dir in $PATH; do
484 IFS=$as_save_IFS
485 test -z "$dir" && dir=.
486 if test -f "$dir/$1"; then
487 echo "$dir/$1";
488 break;
489 fi
490 done
491 IFS=${save_IFS};
492); }
493
494find_hostname () {
[174]495
496 uname -a | grep Linux >/dev/null
497 if [ $? -eq 0 ]; then
498 tmp=`hostname -f 2>/dev/null`
499 if [ $? -ne 0 ]; then
500 tmp=`hostname 2>/dev/null`
501 fi
502 else
[19]503 tmp=`hostname 2>/dev/null`
504 fi
505 if [ -z "$tmp" ]; then
506 tmp="localhost"
507 fi
[30]508 #
509 # first one is hostname, others are aliases
510 #
511 tmp2=`cat /etc/hosts | egrep "^ *[0123456789].* $tmp" | awk '{ print $2 }'`
512 if [ -z "$tmp2" ]; then
513 echo "$tmp"
514 else
515 echo "$tmp2"
516 fi
[19]517}
518
519rm -f ./test_log
520
521# first one is hostname, others are aliases
522#
523hostname=`cat /etc/hosts | egrep "^ *127.0.0.1" | awk '{ print $2 }'`
524if [ x"$hostname" = xlocalhost ]; then
525 hostname="127.0.0.1"
526fi
527
[22]528# Seems that 'valgrind' causes random hangs :-(
529#
530if [ -z "$usevalgrind" ]; then
531 VALGRIND=
532else
533 VALGRIND=`find_path valgrind`;
534fi
535[ -z "$VALGRIND" ] || {
536 VALGRIND="$VALGRIND --quiet --tool=memcheck --suppressions=.test.supp";
537 export VALGRIND;
538 [ -z "$verbose" ] || log_msg_ok "using valgrind"
539cat > ".test.supp" <<End-of-data
540#
541# there are unitialized bytes in the struct...
542#
543{
544 pushdata_01
545 Memcheck:Param
546 write(buf)
547 obj:/lib/ld-*.so
548 fun:sh_hash_pushdata
549 fun:sh_files_filecheck
550 fun:sh_dirs_chk
551}
552{
553 pushdata_02
554 Memcheck:Param
555 write(buf)
556 obj:/lib/ld-*.so
557 fun:sh_hash_pushdata
558 fun:sh_files_filecheck
559 fun:sh_files_checkdir
560}
561{
562 pushdata_03
563 Memcheck:Param
564 write(buf)
565 obj:/lib/ld-*.so
566 fun:sh_hash_pushdata
567 fun:sh_hash_writeout
568 fun:main
569}
570
571End-of-data
572}
573
[1]574if test x$1 = x1; then
[19]575 . ${SCRIPTDIR}/testcompile.sh
576 testcompile
577 print_summary
578 exit $?
[1]579fi
580if test x$1 = x2; then
[19]581 . ${SCRIPTDIR}/testhash.sh
582 testhash
583 print_summary
584 exit $?
[1]585fi
586if test x$1 = x3; then
[19]587 . ${SCRIPTDIR}/testrun_1.sh
588 testrun1
589 print_summary
590 exit $?
[1]591fi
592if test x$1 = x4; then
[19]593 . ${SCRIPTDIR}/testrun_1.sh
594 . ${SCRIPTDIR}/testrun_1a.sh
595 testrun1a
596 print_summary
597 exit $?
[1]598fi
599if test x$1 = x5; then
[19]600 . ${SCRIPTDIR}/testext.sh
601 testext0
602 print_summary
603 exit $?
[1]604fi
605if test x$1 = x6; then
[19]606 . ${SCRIPTDIR}/testtimesrv.sh
607 testtime0
608 print_summary
609 exit $?
[1]610fi
611if test x$1 = x7; then
[19]612 . ${SCRIPTDIR}/testrun_1b.sh
613 testrun1b
614 print_summary
615 exit $?
[1]616fi
[22]617if test x$1 = x8; then
618 . ${SCRIPTDIR}/testrun_1.sh
619 . ${SCRIPTDIR}/testrun_1c.sh
620 testrun1c
621 print_summary
622 exit $?
623fi
[68]624if test x$1 = x9; then
625 . ${SCRIPTDIR}/testrun_1.sh
626 . ${SCRIPTDIR}/testrun_1d.sh
627 testrun1d
628 print_summary
629 exit $?
630fi
[1]631if test x$1 = x10; then
[68]632 . ${SCRIPTDIR}/testrun_1.sh
633 . ${SCRIPTDIR}/testrun_1e.sh
634 testrun1e
635 print_summary
636 exit $?
637fi
[481]638if test x$1 = x11; then
639 . ${SCRIPTDIR}/testrun_1.sh
640 . ${SCRIPTDIR}/testrun_1f.sh
641 testrun1f
642 print_summary
643 exit $?
644fi
645if test x$1 = x12; then
646 . ${SCRIPTDIR}/testrun_1.sh
647 . ${SCRIPTDIR}/testrun_1g.sh
648 testrun1g
649 print_summary
650 exit $?
651fi
652if test x$1 = x13; then
653 . ${SCRIPTDIR}/testrun_1.sh
654 . ${SCRIPTDIR}/testrun_1h.sh
655 testrun1h
656 print_summary
657 exit $?
658fi
[68]659if test x$1 = x20; then
[19]660 . ${SCRIPTDIR}/testrun_2.sh
661 testrun2 $hostname
662 print_summary
663 exit $?
[1]664fi
[68]665if test x$1 = x21; then
[19]666 . ${SCRIPTDIR}/testrun_2a.sh
667 testrun2a $hostname
668 print_summary
669 exit $?
[1]670fi
[68]671if test x$1 = x22; then
[19]672 . ${SCRIPTDIR}/testrun_2a.sh
673 . ${SCRIPTDIR}/testrun_2b.sh
674 testrun2b $hostname
675 print_summary
676 exit $?
[1]677fi
[68]678if test x$1 = x23; then
[19]679 . ${SCRIPTDIR}/testrun_2a.sh
680 . ${SCRIPTDIR}/testrun_2c.sh
681 testrun2c $hostname
682 print_summary
683 exit $?
[1]684fi
[68]685if test x$1 = x24; then
[19]686 . ${SCRIPTDIR}/testrun_2a.sh
687 . ${SCRIPTDIR}/testrun_2d.sh
688 testrun2d $hostname
689 print_summary
690 exit $?
[1]691fi
[481]692if test x$1 = x25; then
693 . ${SCRIPTDIR}/testrun_2e.sh
694 testrun2e $hostname
695 print_summary
696 exit $?
697fi
698if test x$1 = x26; then
699 . ${SCRIPTDIR}/testrun_2f.sh
700 testrun2f $hostname
701 print_summary
702 exit $?
703fi
704if test x$1 = x27; then
705 . ${SCRIPTDIR}/testrun_2g.sh
706 testrun2g $hostname
707 print_summary
708 exit $?
709fi
[1]710if test x$1 = xall; then
[19]711 TEST_MAX=0
712 . ${SCRIPTDIR}/testcompile.sh
713 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
714 . ${SCRIPTDIR}/testhash.sh
715 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
716 . ${SCRIPTDIR}/testrun_1.sh
717 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
718 . ${SCRIPTDIR}/testrun_1a.sh
719 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
720 . ${SCRIPTDIR}/testext.sh
721 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
722 . ${SCRIPTDIR}/testtimesrv.sh
723 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
724 . ${SCRIPTDIR}/testrun_1b.sh
725 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[22]726 . ${SCRIPTDIR}/testrun_1c.sh
727 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[68]728 . ${SCRIPTDIR}/testrun_1d.sh
729 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
730 . ${SCRIPTDIR}/testrun_1e.sh
731 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[481]732 . ${SCRIPTDIR}/testrun_1f.sh
733 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
734 . ${SCRIPTDIR}/testrun_1g.sh
735 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
736 . ${SCRIPTDIR}/testrun_1h.sh
737 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[19]738 . ${SCRIPTDIR}/testrun_2.sh
739 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
740 . ${SCRIPTDIR}/testrun_2a.sh
741 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
742 . ${SCRIPTDIR}/testrun_2b.sh
743 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
744 . ${SCRIPTDIR}/testrun_2c.sh
745 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
746 . ${SCRIPTDIR}/testrun_2d.sh
747 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[481]748 . ${SCRIPTDIR}/testrun_2e.sh
749 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
750 . ${SCRIPTDIR}/testrun_2f.sh
751 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
752 . ${SCRIPTDIR}/testrun_2g.sh
753 let "TEST_MAX = TEST_MAX + MAXTEST" >/dev/null
[19]754 #
755 # ${SCRIPTDIR}/testtimesrv.sh
756 # ${SCRIPTDIR}/testrun_1b.sh
757 # ${SCRIPTDIR}/testrun_2.sh $2
758 # ${SCRIPTDIR}/testrun_2a.sh $2
759 #
760 MAXTEST=${TEST_MAX}; export MAXTEST
761 testcompile
762 testhash
763 #
764 . ${SCRIPTDIR}/testrun_1.sh
765 MAXTEST=${TEST_MAX}; export MAXTEST
766 testrun1
767 #
768 . ${SCRIPTDIR}/testrun_1a.sh
769 MAXTEST=${TEST_MAX}; export MAXTEST
770 testrun1a
771 #
772 testext0
773 #
774 . ${SCRIPTDIR}/testtimesrv.sh
775 MAXTEST=${TEST_MAX}; export MAXTEST
776 testtime0
777 #
778 . ${SCRIPTDIR}/testrun_1b.sh
779 MAXTEST=${TEST_MAX}; export MAXTEST
780 testrun1b
781 #
[22]782 . ${SCRIPTDIR}/testrun_1.sh
783 . ${SCRIPTDIR}/testrun_1c.sh
784 MAXTEST=${TEST_MAX}; export MAXTEST
785 testrun1c
786 #
[68]787 . ${SCRIPTDIR}/testrun_1.sh
788 . ${SCRIPTDIR}/testrun_1d.sh
789 MAXTEST=${TEST_MAX}; export MAXTEST
790 testrun1d
791 #
792 . ${SCRIPTDIR}/testrun_1.sh
793 . ${SCRIPTDIR}/testrun_1e.sh
794 MAXTEST=${TEST_MAX}; export MAXTEST
795 testrun1e
796 #
[481]797 . ${SCRIPTDIR}/testrun_1.sh
798 . ${SCRIPTDIR}/testrun_1f.sh
799 MAXTEST=${TEST_MAX}; export MAXTEST
800 testrun1f
801 #
802 . ${SCRIPTDIR}/testrun_1.sh
803 . ${SCRIPTDIR}/testrun_1g.sh
804 MAXTEST=${TEST_MAX}; export MAXTEST
805 testrun1g
806 #
807 . ${SCRIPTDIR}/testrun_1.sh
808 . ${SCRIPTDIR}/testrun_1h.sh
809 MAXTEST=${TEST_MAX}; export MAXTEST
810 testrun1h
811 #
[19]812 . ${SCRIPTDIR}/testrun_2.sh
813 MAXTEST=${TEST_MAX}; export MAXTEST
814 testrun2 $hostname
815 #
816 . ${SCRIPTDIR}/testrun_2a.sh
817 MAXTEST=${TEST_MAX}; export MAXTEST
818 testrun2a $hostname
819 #
820 . ${SCRIPTDIR}/testrun_2b.sh
821 MAXTEST=${TEST_MAX}; export MAXTEST
822 testrun2b $hostname
823 #
824 . ${SCRIPTDIR}/testrun_2c.sh
825 MAXTEST=${TEST_MAX}; export MAXTEST
826 testrun2c $hostname
827 #
828 . ${SCRIPTDIR}/testrun_2d.sh
829 MAXTEST=${TEST_MAX}; export MAXTEST
830 testrun2d $hostname
831 #
[481]832 . ${SCRIPTDIR}/testrun_2e.sh
833 MAXTEST=${TEST_MAX}; export MAXTEST
834 testrun2e $hostname
835 #
836 . ${SCRIPTDIR}/testrun_2f.sh
837 MAXTEST=${TEST_MAX}; export MAXTEST
838 testrun2f $hostname
839 #
840 . ${SCRIPTDIR}/testrun_2g.sh
841 MAXTEST=${TEST_MAX}; export MAXTEST
842 testrun2g $hostname
843 #
[19]844 print_summary
845 exit 0
[1]846fi
847
[19]848usage;
[1]849
[19]850exit 1;
[1]851
[60]852# gpg -a --clearsign --not-dash-escaped testrc.gpg
853# gpg -a --clearsign --not-dash-escaped .samhain_file
854# tar czvf foo.tgz testrc.gpg.asc .samhain_file.asc
855# cat foo.tgz >>test/test.sh
856
[19]857__ARCHIVE_FOLLOWS__
[481]858‹p{Uí•=lÛFÇé©Å!sÑ-di‘D&%‹r
859#QŽ™Ö—
860نQ0҉b͕€d+Kеk—¢@75k塀l}!KaDԙ:µC=öÐՂ“
861¥Ø–RA
8628MûÄñþw÷ã;َ•ñ(Å#ÛêR 1ìܜ[2?=^º0þ@€bŒ~ËÒ^ÆÇR4ãcX–‚ôåž3IÑvd
863BʒUY¯î÷ºöÿ)7]n
864bD‚11“QBpIH&yQ6‚EÙÎ/Àä"ÏÉtBž&ع€²
865pÍ,B¡,bL„Ž KÈRseèäUêȶe6xDZÔ{Eٛ §jˆ›EN€kÐ0
866h!YÓÊP3·ÉŸqG(kºi;P)ʖl8î
867Ø:ÚQmlˆ–¹­JÔTÂî€1“³6²JjÙcR
868ۯ늓Å. %d8Iä:ì”7ÁÙ×
869¶@sü9!1“RÉÙeC+OªgMªÞŸÔQ
870ÓB’i Iýb±Šõç5Û–-ã\
871M‰Ç}.†TËæT#gž+’Œ÷c4l`g6Á’¬jg­xŒ–Ï…
872Ñ
873e[ӆb–z±p£9Àƒjg6AHFºiànxVÇõ+“G™­”ª#ŽñÒ®˜@™¢e«ŠÅ4ŽŠQÓ,
874;±4H ‚i9ᢊ…
875ƒ
876„
877># èÚ±‹z
878§+nhÔÝÁåð&SN0ŸZIŒ8Œ«h8Û‹Zb<^~$J+³QÕ(î|
879€šÝŽ‡…
880ëvzYü‚ÖËü­ô¢w;ÁÖü§tŽ—|:}OºãŸ—ÒŽ^š_ŠâJÅto ,ÑR"ž÷‰(…
881€ £«|#
882àr"Žzèˆ …
883Š¹÷_ÿþ”Ç–õ<NmŸ¹ÿÇ%]ÃüÏŸ:ÿ³¬ÿ,ÿ3–vó?KûIþŒüÿëo?õŸ€cž¢
884`Þ{҇ïñ;C]ÁeTÿª^^qËçN–ãTÆpëPƒÃÃÓÆ7]=
885<ûkPqjï
886Á£?Ô/O
887PÔãӧà&š|9=¬üþðÉêÆÌš
888üöþ0Œk!ÏDù/ÂúqªúMeð¬2šžÕît·[ýÝf³ßkµúµƒn£Õì4v[ûÝ~³ÛÚoWö:m¬7÷z­Z
889¿zõ"¬‡
890žœžŒ&žŸñžå¢£úw_‚Snùhÿ8uiÁõ«ûµN£±Ûk÷;j»ßݯï
891tkœfµW­7v»Õ^§^ëvêõÇ»œNïåàNŽÏzäÆ÷†·Ÿ-„5OAž_
892óÚj€¿çƒÊVüâæ(¯–” ¢Éó‘$ŸžÛﮢì
893»
894ž^HM
895øb[Œy'ñ…
896“ëhIæŒëw5o2
897ÒÐb!f|81œž|·o
898@ @ @ ð.ò7–<̐(
Note: See TracBrowser for help on using the repository browser.