source: trunk/test/testrun_2b.sh@ 20

Last change on this file since 20 was 19, checked in by rainer, 19 years ago

Rewrite of test suite, checksum for growing logs, fix for minor bug with dead client detection.

File size: 5.2 KB
Line 
1#! /bin/sh
2
3LOGFILE="$PW_DIR/.samhain_log"; export LOGFILE
4RCFILE="$PW_DIR/testrc_2"; export RCFILE
5RCFILE_C="$PW_DIR/testrc_1.dyn"; export RCFILE_C
6
7SERVER_BUILDOPTS="--quiet $TRUST --enable-network=server --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2 --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=${SH_LOCALHOST} --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock"; export SERVER_BUILDOPTS
8
9CLIENT_BUILDOPTS="--quiet $TRUST --enable-micro-stealth=137 --enable-debug --enable-network=client --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER${RCFILE_C} --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=localhost --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock"; export CLIENT_BUILDOPTS
10
11testrun2b_internal ()
12{
13 GPG="$1"
14
15 [ -z "$verbose" ] || {
16 echo;
17 echo Working directory: $PW_DIR; echo MAKE is $MAKE; echo GPG is $GPG;
18 echo;
19 }
20
21 [ -z "$verbose" ] || { echo; echo "${S}Building client and server${E}"; echo; }
22
23 if test -r "Makefile"; then
24 $MAKE distclean
25 fi
26
27 ${TOP_SRCDIR}/configure --with-gpg=${GPG} --with-checksum=no ${CLIENT_BUILDOPTS} >/dev/null 2>&1
28
29 if test x$? = x0; then
30 [ -z "$verbose" ] || log_msg_ok "configure...";
31 $MAKE > /dev/null 2>>test_log
32 if test x$? = x0; then
33 [ -z "$verbose" ] || log_msg_ok "make...";
34 else
35 [ -z "$quiet" ] && log_msg_fail "make...";
36 return 1
37 fi
38 else
39 [ -z "$quiet" ] && log_msg_fail "configure...";
40 return 1
41 fi
42
43 SKIP=`awk '/^__ARCHIVE_FOLLOWS__/ { print NR + 1; exit 0; }' ${SCRIPTDIR}/test.sh`
44
45 tail -n "+$SKIP" ${SCRIPTDIR}/test.sh >/dev/null 2>&1
46 if [ $? -eq 0 ]; then
47 tail -n "+$SKIP" ${SCRIPTDIR}/test.sh | gunzip -c - | tar xf - && \
48 mv "./testrc.gpg.asc" "${RCFILE_C}"
49 else
50 tail "+$SKIP" ${SCRIPTDIR}/test.sh | gunzip -c - | tar xf - && \
51 mv "./testrc.gpg.asc" "${RCFILE_C}"
52 fi
53 if test x$? = x0; then
54 [ -z "$verbose" ] || log_msg_ok "extract gpg signed files...";
55 else
56 [ -z "$quiet" ] && log_msg_fail "extract gpg signed files...";
57 return 1
58 fi
59
60 # save binary and build server
61
62 cp samhain samhain.build || return 1
63 make clean >/dev/null || return 1
64
65 ${TOP_SRCDIR}/configure ${SERVER_BUILDOPTS}
66
67 if test x$? = x0; then
68 [ -z "$verbose" ] || log_msg_ok "configure...";
69 $MAKE > /dev/null 2>>test_log
70 if test x$? = x0; then
71 [ -z "$verbose" ] || log_msg_ok "make...";
72 else
73 [ -z "$quiet" ] && log_msg_fail "make...";
74 return 1
75 fi
76
77 else
78 [ -z "$quiet" ] && log_msg_fail "configure...";
79 return 1
80 fi
81
82
83 #####################################################################
84 #
85 #
86 rm -f ./.samhain_file
87 rm -f ./.samhain_log
88 rm -f ./.samhain_lock
89 rm -f ./rc.${SH_LOCALHOST}
90 rm -f ./file.${SH_LOCALHOST}
91
92 cp ${SCRIPTDIR}/testrc_2.in testrc_2
93
94 ./samhain.build -t init -p none
95
96 if test x$? = x0; then
97 [ -z "$verbose" ] || log_msg_ok "init...";
98 else
99 [ -z "$quiet" ] && log_msg_fail "init...";
100 return 1
101 fi
102
103 # Create a password
104
105 SHPW=`./yule -G`
106 if test x"$SHPW" = x; then
107 [ -z "$quiet" ] && log_msg_fail "password not generated -- aborting"
108 return 1
109 fi
110
111 # Set in client
112
113 ./samhain_setpwd samhain.build new $SHPW >/dev/null
114
115 if test x$? = x0; then
116 [ -z "$verbose" ] || log_msg_ok "./samhain_setpwd samhain.build new $SHPW";
117 else
118 [ -z "$quiet" ] && log_msg_fail "./samhain_setpwd samhain.build new $SHPW";
119 return 1
120 fi
121
122 mv samhain.build.new samhain.new || return 1
123
124 rm -f ./.samhain_log*
125 rm -f ./.samhain_lock
126
127 SHCLT=`./yule -P $SHPW | sed s%HOSTNAME%${SH_LOCALHOST}%`
128
129 if test x$? = x0; then
130 [ -z "$verbose" ] || log_msg_ok "yule -P $SHPW";
131 else
132 [ -z "$quiet" ] && log_msg_fail "yule -P $SHPW";
133 return 1
134 fi
135
136 echo $SHCLT >> testrc_2
137
138 cp "${RCFILE_C}" ./rc.${SH_LOCALHOST}
139 mv $PW_DIR/.samhain_file.asc ./file.${SH_LOCALHOST}
140
141 ALTHOST=`find_hostname`
142 cp ./testrc_2 "./rc.${ALTHOST}"
143 cp ./file.${SH_LOCALHOST} "./file.${ALTHOST}" 2>/dev/null
144}
145
146MAXTEST=1; export MAXTEST
147
148testrun2b ()
149{
150 log_start "RUN FULL CLIENT/SERVER W/GPG";
151 #
152 if [ x"$1" = x ]; then
153 [ -z "$quiet" ] && log_msg_fail "Missing hostname"
154 fi
155 #
156 GPG=`find_path gpg`
157 if [ -z "$GPG" ]; then
158 log_skip 1 $MAXTEST 'gpg not found in $PATH'
159 else
160 eval "$GPG" --list-keys 0F571F6C >/dev/null 2>/dev/null
161 if [ $? -ne 0 ]; then
162 log_skip 1 $MAXTEST 'public PGP key 0x0F571F6C not present'
163 else
164
165 SH_LOCALHOST=$1; export SH_LOCALHOST
166
167 testrun2b_internal "$GPG"
168
169 do_test_1_a
170 if [ $? -eq 0 ]; then
171 [ -z "$quiet" ] && log_ok 1 ${MAXTEST} "Client download+logging w/gpg";
172 else
173 [ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client download+logging w/gpg";
174 fi
175
176 if [ -n "$cleanup" ]; then
177 rm -f ./rc.${SH_LOCALHOST}
178 rm -f ./file.${SH_LOCALHOST}
179 ALTHOST=`find_hostname`
180 rm -f "./file.${ALTHOST}"
181 rm -f "./rc.${ALTHOST}"
182 fi
183 fi
184 fi
185 log_end "RUN FULL CLIENT/SERVER W/GPG"
186}
187
Note: See TracBrowser for help on using the repository browser.