Ignore:
Timestamp:
Feb 12, 2006, 10:49:56 PM (19 years ago)
Author:
rainer
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/testrun_2d.sh

    r1 r19  
    11#! /bin/sh
    22
     3SERVER_BUILDOPTS="--quiet  $TRUST --enable-xml-log --enable-debug --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 --with-database=postgresql"; export SERVER_BUILDOPTS
    34
    4 # The following two are the ANSI sequences for start and end embolden
    5 case $TERM in
    6 vt*|ansi*|con*|xterm*|linux*|screen*)
    7   S=[1m
    8   E=[m
    9   ;;
    10 *)
    11   S=
    12   E=
    13   ;;
    14 esac
     5CLIENT_BUILDOPTS="--quiet  $TRUST --prefix=$PW_DIR --localstatedir=$PW_DIR --enable-network=client --disable-mail --disable-external-scripts --enable-login-watch --enable-xml-log --enable-db-reload --with-logserver=localhost --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2 --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock"; export CLIENT_BUILDOPTS
    156
    16 PW_DIR=`pwd`
     7check_psql_log () {
     8    DATE="$1"
    179
    18 if test x$UID != x; then
    19   TRUST="--with-trusted=0,2,$UID"
    20 else
    21   TRUST="--with-trusted=0,2"
    22 fi
     10    rm -f test_log_db
     11    PGPASSWORD=samhain; export PGPASSWORD
     12    psql -U samhain -d samhain -c "SELECT * FROM log WHERE entry_status = 'NEW' and log_time > '${DATE}';" >test_log_db
     13    #
     14    egrep "START.*Yule" test_log_db >/dev/null 2>&1
     15    if [ $? -ne 0 ]; then
     16        [ -z "$verbose" ] || log_msg_fail "Server start";
     17        return 1
     18    fi
     19    egrep "NEW CLIENT" test_log_db >/dev/null 2>&1
     20    if [ $? -ne 0 ]; then
     21        [ -z "$verbose" ] || log_msg_fail "Client connect";
     22        return 1
     23    fi
     24    egrep "Checking.*/bin" test_log_db >/dev/null 2>&1
     25    if [ $? -ne 0 ]; then
     26        [ -z "$verbose" ] || log_msg_fail "Client file check";
     27        return 1
     28    fi
     29    egrep "EXIT.*Samhain" test_log_db >/dev/null 2>&1
     30    if [ $? -ne 0 ]; then
     31        [ -z "$verbose" ] || log_msg_fail "Client exit";
     32        return 1
     33    fi
     34    egrep "EXIT.*Yule.*SIGTERM" test_log_db >/dev/null 2>&1
     35    if [ $? -ne 0 ]; then
     36        [ -z "$verbose" ] || log_msg_fail "Server exit";
     37        return 1
     38    fi
     39    return 0
     40}
    2341
    24 echo; echo "${S}__ STARTING TEST RUN CLIENT/SERVER __${E}"; echo;
    25 echo Working directory: $PW_DIR
    26 
    27 MAKE=`which gmake`
    28 if test "x$?" = x1 ; then
    29     MAKE="make -s"
    30 else
    31     MAKE=`which gmake | sed -e "s%\([a-z:]\) .*%\1%g"`
    32     if test "x$MAKE" = x; then
    33         MAKE="make -s"
    34     elif test "x$MAKE" = xno; then
    35         MAKE="make -s"
    36     else
    37         if test "x$MAKE" = "xwhich:"; then
    38                 MAKE="make -s"
    39         else
    40                 MAKE="gmake -s"
    41                 gmake -v >/dev/null 2>&1 || MAKE="make -s"
    42         fi
    43     fi
    44 fi
    45 
    46 echo MAKE is $MAKE
    47 echo
    48 
    49 # --with-database=postgresql
    50 # export MYLIB=-L/usr/local/pgsql/lib
    51 # export MYINC=-I/usr/local/pgsql/include
    52 # export LD_LIBRARY_PATH=/usr/local/pgsql/lib
    53 
    54 # --with-database=mysql
    55 # export MYLIB=-L/usr/local/mysql/lib
    56 # export MYINC=-I/usr/local/mysql/include
    57 # export LD_LIBRARY_PATH=/usr/local/mysql/lib
     42MAXTEST=1; export MAXTEST
    5843
    5944testrun2d ()
    6045{
    61         #
    62         # test standalone compilation
    63         #
    64         echo "${S}Building client and server${E}"; echo;
    65         #
    66         if test -r "Makefile"; then
    67                 $MAKE distclean
     46    log_start "RUN FULL CLIENT/SERVER W/POSTGRESQL"
     47    #
     48    if [ -z "$doall" ]; then
     49        log_skip 1 $MAXTEST 'Client/server w/postgresql (or use --really-all)'
     50        return 0
     51    fi
     52    if [ x"$1" = x ]; then
     53        [ -z "$quiet" ] && log_msg_fail "Missing hostname"
     54    fi
     55    PSQL=`find_path psql`
     56    if [ -z "$PSQL" ]; then
     57        log_skip 1 $MAXTEST "psql not found";
     58        return 1
     59    else
     60        PGPASSWORD="samhain"; export PGPASSWORD
     61        TEST=`psql -U samhain -d samhain -c "SELECT * FROM log LIMIT 1;" 2>/dev/null`
     62        if [ $? -ne 0 -o -z "$TEST" ]; then
     63            log_skip 1 $MAXTEST "psql not default setup"
     64            return 1
    6865        fi
    69         #
    70         ${TOP_SRCDIR}/configure --quiet  $TRUST --enable-network=client  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/testrc_2  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file
    71         #
    72         if test x$? = x0; then
    73                 echo "configure completed, exit status 0"; echo;
    74                 $MAKE  > /dev/null
    75                 if test x$? = x0; then
    76                     echo "$MAKE completed, exit status $?"; echo;
    77                 else
    78                     echo "${S}ERROR:${E} make failed, exit status $?"; echo;
    79                     exit
    80                 fi
    81 
     66    fi
     67    #
     68    SH_LOCALHOST=$1; export SH_LOCALHOST
     69    #
     70    DATE=`date '+%Y-%m-%d %T'`
     71    #
     72    testrun2a_internal
     73    #
     74    ORIGINAL="DatabaseSeverity=none"
     75    REPLACEMENT="DatabaseSeverity=info"
     76    ex $RCFILE <<EOF
     77:%s/$ORIGINAL/$REPLACEMENT/g
     78:wq
     79EOF
     80    #
     81    do_test_1_a
     82    if [ $? -ne 0 ]; then
     83        [ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client/server w/postgresql";
     84    else
     85    #
     86        check_psql_log "${DATE}"
     87        if [ $? -ne 0 ]; then
     88            [ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client/server w/postgresql";
    8289        else
    83                 echo "${S}ERROR:${E} configure failed, exit status $?"; echo;
    84                 exit
     90            [ -z "$quiet" ] && log_ok   1 ${MAXTEST} "Client/server w/postgresql";
    8591        fi
    86 
    87         # save binary and build server
    88         #
    89         cp samhain samhain.build
    90         make clean
    91 
    92         ${TOP_SRCDIR}/configure --quiet  $TRUST --enable-network=server  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/testrc_2  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file --enable-udp --enable-identity=rainer
    93         #
    94         if test x$? = x0; then
    95                 echo "configure completed, exit status 0"; echo;
    96                 $MAKE  > /dev/null
    97                 if test x$? = x0; then
    98                     echo "$MAKE completed, exit status $?"; echo;
    99                 else
    100                     echo "${S}ERROR:${E} make failed, exit status $?"; echo;
    101                     exit
    102                 fi
    103 
    104         else
    105                 echo "${S}ERROR:${E} configure failed, exit status $?"; echo;
    106                 exit
    107         fi
    108 
    109         #################################################################
    110         #
    111         #
    112         echo "${S}Initialize database${E}"; echo;
    113 
    114         rm -f ./.samhain_file
    115         rm -f ./.samhain_log
    116         rm -f ./.samhain_lock
    117 
    118         cp ${SCRIPTDIR}/testrc_2.in testrc_2
    119 
    120         echo "./samhain.build -t init"
    121         ./samhain.build -t init
    122 
    123         SHINI=$?
    124 
    125         # Create a password
    126 
    127         SHPW=`./yule -G 2>&1 | grep -v 'ERRO'`
    128         if test x"$SHPW" = x; then
    129             echo "password not generated -- aborting"
    130             exit 1
    131         fi
    132 
    133         # Set in client
    134 
    135         echo "./samhain_setpwd samhain.build new $SHPW"
    136         ./samhain_setpwd samhain.build new $SHPW
    137 
    138         mv samhain.build.new  samhain.new
    139 
    140         rm -f ./.samhain_log
    141         rm -f ./.samhain_lock
    142 
    143         SHCLT=`./yule -P $SHPW  2>&1 | grep -v 'ERRO' | sed s%HOSTNAME%${SH_LOCALHOST}%`
    144 
    145         echo $SHCLT >> testrc_2
    146 
    147         if test x$SHINI = x0; then
    148                 echo; echo "${S}Start Server${E}: ./yule  &"; echo;
    149                 su -c "./yule &"
    150                 PROC_Y=$!
    151                 sleep 5
    152 
    153                 echo; echo "${S}Start Client${E}: ./samhain.new -l none -p none -e info -t check";
    154 
    155                 ./samhain.new -t check -p none -l none -e info
    156                 if test x$? = x0; then
    157                     echo "${S}check completed${E}"
    158                 else
    159                     echo "${S}ERROR:${E} -- check -- failed, exit status $?"
    160                     echo
    161                     su -c "kill $PROC_Y"
    162                     exit
    163                 fi
    164 
    165                 su -c "kill $PROC_Y"
    166                 sleep 5
    167         else
    168                 echo "${S}ERROR:${E} -- init -- failed, exit status $SHINI";
    169                 echo;
    170                 exit
    171         fi
    172            
     92    fi
     93    #
     94    if [ -n "$cleanup" ]; then
     95        rm -f ./rc.${SH_LOCALHOST}
     96        rm -f ./file.${SH_LOCALHOST}
     97        ALTHOST=`find_hostname`
     98        rm -f "./file.${ALTHOST}"
     99        rm -f "./rc.${ALTHOST}"
     100    fi
     101    #
     102    log_end "RUN FULL CLIENT/SERVER W/POSTGRESQL"
    173103}
    174104
    175     if test x$1 = x; then
    176         echo
    177         echo "Please provide the local hostname as argument."
    178         echo
    179         exit 8
    180     fi
    181 
    182     SH_LOCALHOST=$1; export SH_LOCALHOST
    183 
    184     testrun2d
    185 
    186 
    187 echo; echo "${S}__ END TEST RUN CLIENT/SERVER __${E}"; echo;
    188 
    189 exit
    190 
Note: See TracChangeset for help on using the changeset viewer.