rm -f $NMBD_TEST_LOG
echo -n "STARTING NMBD..."
((
- if ! test -n "$NMBD_MAXTIME"; then
+ if test x"$NMBD_MAXTIME" = x; then
NMBD_MAXTIME=2700
fi
- timelimit $NMBD_MAXTIME $NMBD_VALGRIND $SRCDIR/bin/nmbd -F -S --no-process-group -d0 -s $SERVERCONFFILE > $NMBD_TEST_LOG 2>&1 &
+ MAKE_TEST_BINARY=$BINDIR/nmbd
+ export MAKE_TEST_BINARY
+ timelimit $NMBD_MAXTIME $NMBD_VALGRIND $BINDIR/nmbd -F -S --no-process-group -d0 -s $SERVERCONFFILE > $NMBD_TEST_LOG 2>&1 &
TIMELIMIT_NMBD_PID=$!
+ MAKE_TEST_BINARY=
echo $TIMELIMIT_NMBD_PID > $PIDDIR/timelimit.nmbd.pid
wait $TIMELIMIT_NMBD_PID
ret=$?;
rm -f $SMBD_TEST_LOG
echo -n "STARTING SMBD..."
((
- if ! test -n "$SMBD_MAXTIME"; then
+ if test x"$SMBD_MAXTIME" = x; then
SMBD_MAXTIME=2700
fi
- timelimit $SMBD_MAXTIME $SMBD_VALGRIND $SRCDIR/bin/smbd -F -S --no-process-group -d0 -s $SERVERCONFFILE > $SMBD_TEST_LOG 2>&1 &
+ MAKE_TEST_BINARY=$BINDIR/smbd
+ export MAKE_TEST_BINARY
+ timelimit $SMBD_MAXTIME $SMBD_VALGRIND $BINDIR/smbd -F -S --no-process-group -d0 -s $SERVERCONFFILE > $SMBD_TEST_LOG 2>&1 &
TIMELIMIT_SMBD_PID=$!
+ MAKE_TEST_BINARY=
echo $TIMELIMIT_SMBD_PID > $PIDDIR/timelimit.smbd.pid
wait $TIMELIMIT_SMBD_PID
ret=$?;
fi
name=$1
shift 1
- SERVERS_ARE_UP="no"
- TEST_LOG="$PREFIX/test_log.$$"
- trap "rm -f $TEST_LOG" EXIT
+ binary=$1
cmdline="$*"
+ SERVERS_ARE_UP="no"
+
+ shname=`echo $name | \
+ sed -e 's%[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\-]%_%g'`
+
+ UNIQUE_PID=`/bin/sh -c 'echo $$'`
+ TEST_LOG="$PREFIX/test_log.${UNIQUE_PID}"
+ TEST_PCAP="$PREFIX/test_${shname}_${UNIQUE_PID}.pcap"
+ trap "rm -f $TEST_LOG $TEST_PCAP" EXIT
+
+ if [ -z "$nmbd_log_size" ]; then
+ nmbd_log_size=`wc -l < $NMBD_TEST_LOG`;
+ fi
+ if [ -z "$smbd_log_size" ]; then
+ smbd_log_size=`wc -l < $SMBD_TEST_LOG`;
+ fi
+
if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
echo "--==--==--==--==--==--==--==--==--==--==--"
echo "Running test $name (level 0 stdout)"
fi
return 1
fi
-
+
+ if [ x"$MAKE_TEST_ENABLE_PCAP" = x"yes" ];then
+ SOCKET_WRAPPER_PCAP_FILE=$TEST_PCAP
+ export SOCKET_WRAPPER_PCAP_FILE
+ fi
+
+ MAKE_TEST_BINARY=$binary
+ export MAKE_TEST_BINARY
( $cmdline > $TEST_LOG 2>&1 )
status=$?
+ MAKE_TEST_BINARY=
+ # show any additional output from smbd that has happened in this test
+ samba3_nmbd_test_log && {
+ new_log_size=`wc -l < $NMBD_TEST_LOG`;
+ test "$new_log_size" = "$nmbd_log_size" || {
+ echo "NMBD OUTPUT:";
+ incr_log_size=`expr $new_log_size - $nmbd_log_size`;
+ tail -$incr_log_size $NMBD_TEST_LOG;
+ nmbd_log_size=$new_log_size;
+ }
+ }
+ samba3_smbd_test_log && {
+ new_log_size=`wc -l < $SMBD_TEST_LOG`;
+ test "$new_log_size" = "$smbd_log_size" || {
+ echo "SMBD OUTPUT:";
+ incr_log_size=`expr $new_log_size - $smbd_log_size`;
+ tail -$incr_log_size $SMBD_TEST_LOG;
+ smbd_log_size=$new_log_size;
+ }
+ }
+
if [ x"$status" != x"0" ]; then
echo "TEST OUTPUT:"
cat $TEST_LOG;
- samba3_nmbd_test_log && echo "NMBD OUTPUT:";
- samba3_nmbd_test_log && cat $NMBD_TEST_LOG;
- samba3_smbd_test_log && echo "SMBD OUTPUT:";
- samba3_smbd_test_log && cat $SMBD_TEST_LOG;
rm -f $TEST_LOG;
+ if [ x"$MAKE_TEST_ENABLE_PCAP" = x"yes" ];then
+ echo "TEST PCAP: $TEST_PCAP"
+ fi
if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
echo "=========================================="
echo "TEST FAILED: $name (status $status)"
else
echo "TEST FAILED: $cmdline (status $status)"
fi
+ trap "" EXIT
return 1;
fi
rm -f $TEST_LOG;
+ if [ x"$MAKE_TEST_KEEP_PCAP" = x"yes" ];then
+ echo "TEST PCAP: $TEST_PCAP"
+ else
+ rm -f $TEST_PCAP;
+ fi
if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
echo "ALL OK: $cmdline"
echo "=========================================="
echo "TEST PASSED: $name"
echo "=========================================="
fi
+ trap "" EXIT
return 0;
}