source: trunk/test/test.sh@ 556

Last change on this file since 556 was 550, checked in by katerina, 5 years ago

Fix for ticket #442 (support for OpenBSD signify).

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