source: trunk/test/testrun_2a.sh@ 70

Last change on this file since 70 was 51, checked in by rainer, 18 years ago

Fix problems with linux kernel 2.6.17

File size: 8.2 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
[19]22LOGFILE="$PW_DIR/.samhain_log"; export LOGFILE
23RCFILE="$PW_DIR/testrc_2"; export RCFILE
[1]24
[19]25SERVER_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
[1]26
[44]27CLIENT_BUILDOPTS="--quiet $TRUST --enable-debug --enable-network=client --enable-srp --prefix=$PW_DIR --with-tmp-dir=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER$RCFILE --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=localhost --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock --enable-suidcheck"; export CLIENT_BUILDOPTS
[1]28
[19]29do_test_1_a () {
[1]30
[19]31 [ -z "$verbose" ] || {
32 echo;
33 echo "${S}Start Server${E}: ./yule -l info -p none &";
34 echo;
35 }
[22]36 rm -f test_log_valgrind
37
38 ${VALGRIND} ./yule -l info -p none >/dev/null 2>>test_log_valgrind &
[19]39 PROC_Y=$!
[51]40 five_sec_sleep
[1]41
[19]42 [ -z "$verbose" ] || {
43 echo;
44 echo "${S}Start Client${E}: ./samhain.new -l none -p none -e info -t check";
45 echo;
46 }
47
[22]48 ${VALGRIND} ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>>test_log_valgrind
[19]49 if test x$? = x0; then
50 [ -z "$verbose" ] || log_msg_ok "samhain.new -t check";
[1]51 else
[19]52 [ -z "$quiet" ] && log_msg_fail "samhain.new -t check";
53 kill $PROC_Y
54 return 1
[1]55 fi
56
[19]57 kill $PROC_Y
[51]58 five_sec_sleep
[1]59
[19]60 egrep "START(>|\").*Yule(>|\")" $LOGFILE >/dev/null 2>&1
61 if [ $? -ne 0 ]; then
62 [ -z "$verbose" ] || log_msg_fail "Server start";
63 return 1
64 fi
65 egrep "NEW CLIENT" $LOGFILE >/dev/null 2>&1
66 if [ $? -ne 0 ]; then
67 [ -z "$verbose" ] || log_msg_fail "Client connect";
68 return 1
69 fi
70 egrep "Checking.*/etc" $LOGFILE >/dev/null 2>&1
71 if [ $? -ne 0 ]; then
72 [ -z "$verbose" ] || log_msg_fail "Client file check";
73 return 1
74 fi
75 egrep "EXIT.*Samhain" $LOGFILE >/dev/null 2>&1
76 if [ $? -ne 0 ]; then
77 [ -z "$verbose" ] || log_msg_fail "Client exit";
78 return 1
79 fi
80 egrep "EXIT.*Yule.*SIGTERM" $LOGFILE >/dev/null 2>&1
81 if [ $? -ne 0 ]; then
82 [ -z "$verbose" ] || log_msg_fail "Server exit";
83 return 1
84 fi
85
[22]86 [ -z "$VALGRIND" ] || {
87 tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
88 if [ $tmp -ne 0 ]; then
89 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
90 cat test_log_valgrind
91 return 1;
92 fi;
93 }
[1]94
[19]95 return 0
96}
[1]97
[19]98testrun2a_internal ()
[1]99{
[19]100 [ -z "$verbose" ] || {
101 echo;
102 echo Working directory: $PW_DIR; echo MAKE is $MAKE;
103 echo;
104 }
[1]105 #
106 #
[19]107 [ -z "$verbose" ] || { echo; echo "${S}Building client and server${E}"; echo; }
[1]108 #
109 if test -r "Makefile"; then
110 $MAKE distclean
111 fi
112 #
[19]113 ${TOP_SRCDIR}/configure ${CLIENT_BUILDOPTS}
[1]114 #
[44]115 # Limit suid check
116 #
117 BASE="${PW_DIR}"; export BASE
118 #
[1]119 if test x$? = x0; then
[19]120 [ -z "$verbose" ] || log_msg_ok "configure...";
[44]121 $MAKE 'DBGDEF=-DSH_SUIDTESTDIR=\"${BASE}\"' > /dev/null 2>>test_log
[1]122 if test x$? = x0; then
[19]123 [ -z "$verbose" ] || log_msg_ok "make...";
[1]124 else
[19]125 [ -z "$quiet" ] && log_msg_fail "make...";
126 return 1
[1]127 fi
128
129 else
[19]130 [ -z "$quiet" ] && log_msg_fail "configure...";
131 return 1
[1]132 fi
133
134 # save binary and build server
135 #
[19]136 cp samhain samhain.build || return 1
[30]137 $MAKE clean >/dev/null || return 1
[1]138
[19]139 ${TOP_SRCDIR}/configure ${SERVER_BUILDOPTS}
[1]140 #
141 if test x$? = x0; then
[19]142 [ -z "$verbose" ] || log_msg_ok "configure...";
143 $MAKE > /dev/null 2>>test_log
[1]144 if test x$? = x0; then
[19]145 [ -z "$verbose" ] || log_msg_ok "make...";
[1]146 else
[19]147 [ -z "$quiet" ] && log_msg_fail "make...";
148 return 1
[1]149 fi
150
151 else
[19]152 [ -z "$quiet" ] && log_msg_fail "configure...";
153 return 1
[1]154 fi
155
156
[19]157 #####################################################################
158 #
159 #
[1]160 rm -f ./.samhain_file
161 rm -f ./.samhain_log
162 rm -f ./.samhain_lock
163 rm -f ./rc.${SH_LOCALHOST}
164 rm -f ./file.${SH_LOCALHOST}
[25]165 rm -f "./rc.${ALTHOST}"
166 rm -f "./file.${ALTHOST}"
[1]167
168 cp ${SCRIPTDIR}/testrc_2.in testrc_2
169
[19]170 ./samhain.build -t init -p none
[1]171
[19]172 if test x$? = x0; then
173 [ -z "$verbose" ] || log_msg_ok "init...";
174 else
175 [ -z "$quiet" ] && log_msg_fail "init...";
176 return 1
177 fi
[1]178
179 # Create a password
180
181 SHPW=`./yule -G`
182 if test x"$SHPW" = x; then
[19]183 [ -z "$quiet" ] && log_msg_fail "password not generated -- aborting"
184 return 1
[1]185 fi
186
187 # Set in client
188
[19]189 ./samhain_setpwd samhain.build new $SHPW >/dev/null
[1]190
[19]191 if test x$? = x0; then
192 [ -z "$verbose" ] || log_msg_ok "./samhain_setpwd samhain.build new $SHPW";
193 else
194 [ -z "$quiet" ] && log_msg_fail "./samhain_setpwd samhain.build new $SHPW";
195 return 1
196 fi
[1]197
[19]198 mv samhain.build.new samhain.new || return 1
199
200 rm -f ./.samhain_log*
[1]201 rm -f ./.samhain_lock
202
[29]203 SHCLT=`./yule -P $SHPW`
[1]204
[19]205 if test x$? = x0; then
206 [ -z "$verbose" ] || log_msg_ok "yule -P $SHPW";
207 else
208 [ -z "$quiet" ] && log_msg_fail "yule -P $SHPW";
209 return 1
210 fi
211
[29]212 SHCLT1=`echo "${SHCLT}" | sed s%HOSTNAME%${SH_LOCALHOST}%`
213 AHOST=`find_hostname`
214 SHCLT2=`echo "${SHCLT}" | sed s%HOSTNAME%${AHOST}%`
215
[1]216
[29]217 echo $SHCLT1 >> testrc_2
218 echo $SHCLT2 >> testrc_2
219
220
[19]221 cp ./testrc_2 ./rc.${SH_LOCALHOST}
222 mv ./.samhain_file ./file.${SH_LOCALHOST}
[1]223
[19]224 ALTHOST=`find_hostname`
225 cp ./testrc_2 "./rc.${ALTHOST}"
226 cp ./file.${SH_LOCALHOST} "./file.${ALTHOST}" 2>/dev/null
[1]227}
228
[25]229MAXTEST=5; export MAXTEST
[19]230
231testrun2a ()
232{
233 log_start "RUN FULL CLIENT/SERVER";
234 #
235 if [ x"$1" = x ]; then
236 [ -z "$quiet" ] && log_msg_fail "Missing hostname"
[1]237 fi
[19]238 #
[1]239 SH_LOCALHOST=$1; export SH_LOCALHOST
[19]240 #
241 testrun2a_internal
242 do_test_1_a
243 if [ $? -eq 0 ]; then
244 [ -z "$quiet" ] && log_ok 1 ${MAXTEST} "Client download+logging";
245 else
246 [ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client download+logging";
247 fi
248 #
[25]249 SERVER_BUILDOPTS_ORIG="${SERVER_BUILDOPTS}"
250 CLIENT_BUILDOPTS_ORIG="${CLIENT_BUILDOPTS}"
251 #
252 SERVER_BUILDOPTS="${SERVER_BUILDOPTS_ORIG} --disable-srp"
253 CLIENT_BUILDOPTS="${CLIENT_BUILDOPTS_ORIG} --disable-srp"
254 #
255 testrun2a_internal
256 do_test_1_a
257 if [ $? -eq 0 ]; then
258 [ -z "$quiet" ] && log_ok 2 ${MAXTEST} "SRP disabled";
259 else
260 [ -z "$quiet" ] && log_fail 2 ${MAXTEST} "SRP disabled";
261 fi
262 #
263 SERVER_BUILDOPTS="${SERVER_BUILDOPTS_ORIG} --disable-encrypt"
264 CLIENT_BUILDOPTS="${CLIENT_BUILDOPTS_ORIG} --disable-encrypt"
265 #
266 testrun2a_internal
267 do_test_1_a
268 if [ $? -eq 0 ]; then
269 [ -z "$quiet" ] && log_ok 3 ${MAXTEST} "Encryption disabled";
270 else
271 [ -z "$quiet" ] && log_fail 3 ${MAXTEST} "Encryption disabled";
272 fi
273 #
274 SERVER_BUILDOPTS="${SERVER_BUILDOPTS_ORIG} --enable-encrypt=1"
275 CLIENT_BUILDOPTS="${CLIENT_BUILDOPTS_ORIG} --enable-encrypt=1"
276 #
277 testrun2a_internal
278 do_test_1_a
279 if [ $? -eq 0 ]; then
280 [ -z "$quiet" ] && log_ok 4 ${MAXTEST} "Encryption (v1)";
281 else
282 [ -z "$quiet" ] && log_fail 4 ${MAXTEST} "Encryption (v1)";
283 fi
284 #
285 SERVER_BUILDOPTS="${SERVER_BUILDOPTS_ORIG}"
286 CLIENT_BUILDOPTS="${CLIENT_BUILDOPTS_ORIG} --enable-encrypt=1"
287 #
288 testrun2a_internal
289 do_test_1_a
290 if [ $? -eq 0 ]; then
291 [ -z "$quiet" ] && log_ok 5 ${MAXTEST} "Encryption backward compat";
292 else
293 [ -z "$quiet" ] && log_fail 5 ${MAXTEST} "Encryption backward compat";
294 fi
295 #
[19]296 if [ -n "$cleanup" ]; then
297 rm -f ./rc.${SH_LOCALHOST}
298 rm -f ./file.${SH_LOCALHOST}
299 ALTHOST=`find_hostname`
300 rm -f "./file.${ALTHOST}"
301 rm -f "./rc.${ALTHOST}"
302 fi
303 #
304 log_end "RUN FULL CLIENT/SERVER"
305}
[1]306
Note: See TracBrowser for help on using the repository browser.