Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/testrun_2.sh

    r30 r19  
    11#! /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 #
    212
    223LOGFILE="$PW_DIR/.samhain_log"; export LOGFILE
    234RCFILE="$PW_DIR/testrc_2";  export RCFILE
    24 HTML="$PW_DIR/yule.html";  export HTML
    255
    266
     
    3212            echo;
    3313        }
    34 
    35         rm -f test_log_valgrind
    36 
    37         ${VALGRIND} ./yule.2 -l info -p none >/dev/null 2>>test_log_valgrind &
    38         PROC_Y2=$!
    39         sleep 5
    40 
    41         [ -z "$verbose" ] || {
    42             echo;
    43             echo "${S}Start Server #2${E}: ./yule.2 -l info -p none &";
    44             echo;
    45         }
    46 
    47         ${VALGRIND} ./yule -l info -p none -e info --bind-address=127.0.0.1 \
    48             --server-port=49778 >/dev/null 2>>test_log_valgrind &
     14        ./yule -l info -p none >/dev/null 2>&1 &
    4915        PROC_Y=$!
    5016        sleep 5
     
    5622        }
    5723
    58         ${VALGRIND} ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>>test_log_valgrind
     24        ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>&1
    5925        if test x$? = x0; then
    6026            [ -z "$verbose" ] || log_msg_ok    "samhain.new -t check";
     
    6228            [ -z "$quiet" ]   && log_msg_fail  "samhain.new -t check";
    6329            kill $PROC_Y
    64             kill $PROC_Y2
    6530            return 1
    6631        fi
    6732
    6833        kill $PROC_Y
    69         kill $PROC_Y2
    70         sleep 5
    71 
    72         # cp ${LOGFILE}  triple_test
    73         # cp ${LOGFILE}2 triple_test_2
    74 
    75         egrep "START(>|\").*Yule(>|\")" ${LOGFILE}2 >/dev/null 2>&1
    76         if [ $? -ne 0 ]; then
    77             [ -z "$verbose" ] || log_msg_fail "Server #2 start";
    78             return 1
    79         fi
    80         egrep "remote_host.*Checking.*/bin" ${LOGFILE}2 >/dev/null 2>&1
    81         if [ $? -ne 0 ]; then
    82             [ -z "$verbose" ] || log_msg_fail "Client file check (relayed)";
    83             return 1
    84         fi
    85         egrep "remote_host.*EXIT.*Samhain" ${LOGFILE}2 >/dev/null 2>&1
    86         if [ $? -ne 0 ]; then
    87             [ -z "$verbose" ] || log_msg_fail "Client exit (relayed)";
    88             return 1
    89         fi
    90         egrep "EXIT.*Yule.*SIGTERM" ${LOGFILE}2 >/dev/null 2>&1
    91         if [ $? -ne 0 ]; then
    92             [ -z "$verbose" ] || log_msg_fail "Server #2 exit";
    93             return 1
    94         fi
    95 
     34        sleep 5
    9635
    9736        egrep "START(>|\").*Yule(>|\")" $LOGFILE >/dev/null 2>&1
     
    12059            return 1
    12160        fi
    122 
    123         [ -z "$VALGRIND" ] || {
    124             tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
    125             if [ $tmp -ne 0 ]; then
    126                 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
    127                 cat test_log_valgrind
    128                 return 1;
    129             fi;
    130         }
     61       
    13162
    13263        return 0
     
    13869        REPLACEMENT="UseSeparateLogs=yes"
    13970        ex $RCFILE <<EOF
    140 %s/$ORIGINAL/$REPLACEMENT/g
    141 wq
     71:%s/$ORIGINAL/$REPLACEMENT/g
     72:wq
    14273EOF
    14374# :%s is the "ex" substitution command.
     
    15081
    15182        rm -f $LOGFILE
    152         rm -f test_log_valgrind
    153 
    154         ${VALGRIND} ./yule -l info -p none >/dev/null 2>>test_log_valgrind &
     83
     84        ./yule -l info -p none >/dev/null 2>&1 &
    15585        PROC_Y=$!
    15686        sleep 5
     
    16292        }
    16393
    164         ${VALGRIND} ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>>test_log_valgrind
     94        ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>&1
    16595        if test x$? = x0; then
    16696            [ -z "$verbose" ] || log_msg_ok    "samhain.new -t check";
     
    182112            CLIENTLOG="${LOGFILE}.${remhost}"
    183113        else
    184             tail -n 1 ${SCRIPTDIR}/test.sh >/dev/null 2>&1
    185             if [ $? -eq 0 ]; then
    186                 CLIENTLOG=`ls -1 ${LOGFILE}.* 2>/dev/null | tail -n 1`
    187             else
    188                 CLIENTLOG=`ls -1 ${LOGFILE}.* 2>/dev/null | tail -1`
    189             fi
     114            CLIENTLOG=`ls -1 ${LOGFILE}.* | tail -n 1`
    190115        fi
    191116
     
    215140            return 1
    216141        fi
    217 
    218         [ -z "$VALGRIND" ] || {
    219             tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
    220             if [ $tmp -ne 0 ]; then
    221                 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
    222                 cat test_log_valgrind
    223                 return 1;
    224             fi;
    225         }
    226142       
    227143        rm -f ${LOGFILE}.${remhost}
     
    240156        REPLACEMENT_4="SetClientTimeLimit=20"
    241157        ex $RCFILE <<EOF
    242 %s/${ORIGINAL_1}/${REPLACEMENT_1}/g
    243 %s/${ORIGINAL_2}/${REPLACEMENT_2}/g
    244 %s/${ORIGINAL_3}/${REPLACEMENT_3}/g
    245 %s/${ORIGINAL_4}/${REPLACEMENT_4}/g
    246 wq
     158:%s/${ORIGINAL_1}/${REPLACEMENT_1}/g
     159:%s/${ORIGINAL_2}/${REPLACEMENT_2}/g
     160:%s/${ORIGINAL_3}/${REPLACEMENT_3}/g
     161:%s/${ORIGINAL_4}/${REPLACEMENT_4}/g
     162:wq
    247163EOF
    248164# :%s is the "ex" substitution command.
     
    255171
    256172        rm -f $LOGFILE
    257         rm -f test_log_valgrind
    258 
    259         ${VALGRIND} ./yule -p none -e none >/dev/null 2>>test_log_valgrind &
     173
     174        ./yule -p none >/dev/null 2>&1 &
    260175        PROC_Y=$!
    261176        sleep 5
     
    267182        }
    268183
    269         ${VALGRIND} ./samhain.new -t check -p none -l none --forever --bind-address=127.0.0.1 >/dev/null 2>>test_log_valgrind &
     184        ./samhain.new -t check -p none -l none --forever --bind-address=127.0.0.1 >/dev/null 2>&1 &
    270185        if test x$? = x0; then
    271186            PROC_S=$!
     
    316231            return 1
    317232        fi
    318 
    319         [ -z "$VALGRIND" ] || {
    320             tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
    321             if [ $tmp -ne 0 ]; then
    322                 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
    323                 cat test_log_valgrind
    324                 return 1;
    325             fi;
    326         }
    327233       
    328         rm -f ${LOGFILE}
     234        rm -f ${LOGFILE}.${remhost}
    329235        return 0
    330236}
    331 
    332 do_test_4 () {
    333 
    334         # don't know what is supported on the test platform, so
    335         # prepare for both (password and socket credential)
    336 
    337         # 'id -u' is posix
    338         me=`id -u`
    339 
    340         ORIGINAL_1="SetSocketAllowUid=0"
    341         REPLACEMENT_1="SetSocketAllowUid=$me"
    342         ex $RCFILE <<EOF
    343 %s/${ORIGINAL_1}/${REPLACEMENT_1}/g
    344 wq
    345 EOF
    346 
    347         [ -z "$verbose" ] || {
    348             echo;
    349             echo "${S}Start Server${E}: ./yule -l info -p none &";
    350             echo;
    351         }
    352 
    353         rm -f $LOGFILE
    354         rm -f test_log_valgrind
    355 
    356         ${VALGRIND} ./yule -l info -p none -e none \
    357             >/dev/null 2>>test_log_valgrind &
    358         PROC_Y=$!
    359         sleep 5
    360 
    361         [ -z "$verbose" ] || {
    362             echo;
    363             echo "${S}Start Client${E}: ./samhain.new -l none -p none -e info -t check";
    364             echo;
    365         }
    366 
    367         $MAKE yulectl >/dev/null
    368         if [ $? -ne 0 ]; then
    369             [ -z "$verbose" ] || log_msg_fail "make yulectl";
    370             kill $PROC_Y
    371             return 1
    372         fi
    373 
    374 
    375         ./yulectl -v -c RELOAD foobar1 >test_log_yulectl 2>/dev/null
    376 
    377         if [ $? -ne 0 ]; then
    378             YULECTL_PASSWORD=samhain; export YULECTL_PASSWORD
    379             ./yulectl -v -c RELOAD foobar1 >test_log_yulectl
    380             if [ $? -ne 0 ]; then
    381                 kill ${PROC_Y}
    382                 [ -z "$verbose" ] || log_msg_fail "yulectl";
    383                 return 1
    384             fi
    385         fi
    386 
    387         ./yulectl -v -c RELOAD foobar2 >test_yulectl_log
    388 
    389         if [ $? -ne 0 ]; then
    390             kill ${PROC_Y}
    391             [ -z "$verbose" ] || log_msg_fail "yulectl";
    392             return 1
    393         fi
    394 
    395         ./yulectl -v -c RELOAD foobar3 >test_log_yulectl
    396 
    397         if [ $? -ne 0 ]; then
    398             kill ${PROC_Y}
    399             [ -z "$verbose" ] || log_msg_fail "yulectl";
    400             return 1
    401         fi
    402 
    403         ./yulectl -v -c LISTALL dummy >test_log_yulectl
    404 
    405         if [ $? -ne 0 ]; then
    406             kill ${PROC_Y}
    407             [ -z "$verbose" ] || log_msg_fail "yulectl";
    408             return 1
    409         fi
    410 
    411         tmp=`cat test_log_yulectl | grep RELOAD | wc -l`
    412         if [ $tmp -ne 3 ]; then
    413             kill ${PROC_Y}
    414             [ -z "$verbose" ] || log_msg_fail "command confirmation";
    415             return 1
    416         fi
    417 
    418         ./yulectl -v -c CANCEL foobar3 >test_log_yulectl
    419 
    420         if [ $? -ne 0 ]; then
    421             kill ${PROC_Y}
    422             [ -z "$verbose" ] || log_msg_fail "yulectl";
    423             return 1
    424         fi
    425 
    426         ./yulectl -v -c LISTALL dummy >test_log_yulectl
    427 
    428         if [ $? -ne 0 ]; then
    429             kill ${PROC_Y}
    430             [ -z "$verbose" ] || log_msg_fail "yulectl";
    431             return 1
    432         fi
    433 
    434         tmp=`cat test_log_yulectl | grep RELOAD | wc -l`
    435         if [ $tmp -ne 2 ]; then
    436             kill ${PROC_Y}
    437             [ -z "$verbose" ] || log_msg_fail "command confirmation";
    438             return 1
    439         fi
    440 
    441         kill ${PROC_Y}
    442         sleep 2
    443         kill -9 ${PROC_Y} >/dev/null 2>&1
    444 
    445         [ -z "$VALGRIND" ] || {
    446             tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
    447             if [ $tmp -ne 0 ]; then
    448                 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
    449                 cat test_log_valgrind
    450                 return 1;
    451             fi;
    452         }
    453        
    454         return 0
    455 }
    456 
    457 do_test_5 () {
    458 
    459         [ -z "$verbose" ] || {
    460             echo;
    461             echo "${S}Start Server${E}: ./yule -l info -p none &";
    462             echo;
    463         }
    464 
    465 ( cat <<EOF
    466 <!-- head -->
    467 <html><head><title>test</title></head>
    468 <body>
    469 Current time: %T <br>
    470 <table>
    471 <!-- ehead -->
    472 EOF
    473 ) >head.html
    474 
    475 ( cat <<EOF
    476 <!-- foot -->
    477 </table>
    478 </body>
    479 <!-- efoot -->
    480 EOF
    481 ) >foot.html
    482 
    483 ( cat <<EOF
    484 <!-- entry -->
    485 <tr>
    486   <td>%H</td>
    487   <td>%S</td>
    488   <td>%T</td>
    489 </tr>
    490 <!-- eentry -->
    491 EOF
    492 ) >entry.html
    493 
    494         ${VALGRIND} ./yule -l info -p none -e none \
    495             >/dev/null 2>>test_log_valgrind &
    496         PROC_Y=$!
    497         sleep 5
    498 
    499         egrep '<!-- head -->' $HTML >/dev/null 2>&1
    500         if [ $? -ne 0 ]; then
    501             # rm -f head.html; rm -f foot.html; rm -f entry.html;
    502             kill $PROC_Y
    503             [ -z "$verbose" ] || log_msg_fail "head.html (1)";
    504             return 1
    505         fi
    506 
    507         egrep '<!-- foot -->' $HTML >/dev/null 2>&1
    508         if [ $? -ne 0 ]; then
    509             rm -f head.html; rm -f foot.html; rm -f entry.html;
    510             kill $PROC_Y
    511             [ -z "$verbose" ] || log_msg_fail "foot.html (1)";
    512             return 1
    513         fi
    514 
    515         [ -z "$verbose" ] || {
    516             echo;
    517             echo "${S}Start Client${E}: ./samhain.new -l none -p none -e info -t check";
    518             echo;
    519         }
    520 
    521         ${VALGRIND} ./samhain.new -t check -p none -l none -e info --bind-address=127.0.0.1 >/dev/null 2>>test_log_valgrind
    522         if test x$? = x0; then
    523             [ -z "$verbose" ] || log_msg_ok    "samhain.new -t check";
    524         else
    525             kill $PROC_Y
    526             [ -z "$quiet" ]   && log_msg_fail  "samhain.new -t check";
    527             return 1
    528         fi
    529 
    530         kill $PROC_Y
    531         sleep 5
    532 
    533         # rm -f head.html; rm -f foot.html; rm -f entry.html;
    534 
    535         egrep "START(>|\").*Yule(>|\")" $LOGFILE >/dev/null 2>&1
    536         if [ $? -ne 0 ]; then
    537             [ -z "$verbose" ] || log_msg_fail "Server start";
    538             return 1
    539         fi
    540         egrep "NEW CLIENT" $LOGFILE >/dev/null 2>&1
    541         if [ $? -ne 0 ]; then
    542             [ -z "$verbose" ] || log_msg_fail "Client connect";
    543             return 1
    544         fi
    545         egrep "remote_host.*Checking.*/bin" $LOGFILE >/dev/null 2>&1
    546         if [ $? -ne 0 ]; then
    547             [ -z "$verbose" ] || log_msg_fail "Client file check";
    548             return 1
    549         fi
    550         egrep "remote_host.*EXIT.*Samhain" $LOGFILE >/dev/null 2>&1
    551         if [ $? -ne 0 ]; then
    552             [ -z "$verbose" ] || log_msg_fail "Client exit";
    553             return 1
    554         fi
    555         egrep "EXIT.*Yule.*SIGTERM" $LOGFILE >/dev/null 2>&1
    556         if [ $? -ne 0 ]; then
    557             [ -z "$verbose" ] || log_msg_fail "Server exit";
    558             return 1
    559         fi
    560 
    561         egrep '<!-- head -->' $HTML >/dev/null 2>&1
    562         if [ $? -ne 0 ]; then
    563             [ -z "$verbose" ] || log_msg_fail "head.html";
    564             return 1
    565         fi
    566         egrep '<!-- ehead -->' $HTML >/dev/null 2>&1
    567         if [ $? -ne 0 ]; then
    568             [ -z "$verbose" ] || log_msg_fail "end head.html";
    569             return 1
    570         fi
    571 
    572         egrep '<!-- entry -->' $HTML >/dev/null 2>&1
    573         if [ $? -ne 0 ]; then
    574             [ -z "$verbose" ] || log_msg_fail "entry.html";
    575             return 1
    576         fi
    577         egrep '<!-- eentry -->' $HTML >/dev/null 2>&1
    578         if [ $? -ne 0 ]; then
    579             [ -z "$verbose" ] || log_msg_fail "end entry.html";
    580             return 1
    581         fi
    582 
    583         egrep '<!-- foot -->' $HTML >/dev/null 2>&1
    584         if [ $? -ne 0 ]; then
    585             [ -z "$verbose" ] || log_msg_fail "foot.html";
    586             return 1
    587         fi
    588         egrep '<!-- efoot -->' $HTML >/dev/null 2>&1
    589         if [ $? -ne 0 ]; then
    590             [ -z "$verbose" ] || log_msg_fail "end foot.html";
    591             return 1
    592         fi
    593 
    594         [ -z "$VALGRIND" ] || {
    595             tmp=`cat test_log_valgrind 2>/dev/null | wc -l`;
    596             if [ $tmp -ne 0 ]; then
    597                 [ -z "$verbose" ] || log_msg_fail "valgrind reports errors";
    598                 cat test_log_valgrind
    599                 return 1;
    600             fi;
    601         }
    602 
    603         return 0
    604 }
    605 
    606237
    607238testrun2_internal ()
     
    637268        fi
    638269
    639         # save binary and build server2
     270        # save binary and build server
    640271        #
    641272        cp samhain samhain.build || return 1
    642         $MAKE clean >/dev/null || return 1
    643 
    644         ${TOP_SRCDIR}/configure --quiet  $TRUST --enable-debug --enable-network=server  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=${RCFILE}2  --with-log-file=${LOGFILE}2 --with-pid-file=$PW_DIR/.samhain_lock2 --with-html-file=${HTML}2 --with-state-dir=$PW_DIR --enable-encrypt=2 --with-port=49778
     273        make clean >/dev/null || return 1
     274
     275        ${TOP_SRCDIR}/configure --quiet  $TRUST --enable-debug --enable-network=server  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$RCFILE  --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file --enable-identity=rainer --enable-encrypt=2
    645276        #
    646277        if test x$? = x0; then
     
    659290        fi
    660291
    661         # save binary and build server
    662         #
    663         cp yule yule.2 || return 1
    664         $MAKE clean >/dev/null || return 1
    665 
    666         ${TOP_SRCDIR}/configure --quiet  $TRUST --enable-debug --enable-network=server  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$RCFILE  --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock --with-html-file=$HTML --with-state-dir=$PW_DIR --enable-encrypt=2
    667         #
    668         if test x$? = x0; then
    669                 [ -z "$verbose" ] ||     log_msg_ok "configure...";
    670                 $MAKE  > /dev/null 2>>test_log
    671                 if test x$? = x0; then
    672                     [ -z "$verbose" ] || log_msg_ok "make...";
    673                 else
    674                     [ -z "$quiet" ] &&   log_msg_fail "make...";
    675                     return 1
    676                 fi
    677 
    678         else
    679                 [ -z "$quiet" ] &&       log_msg_fail "configure...";
    680                 return 1
    681         fi
    682 
    683292
    684293        #####################################################################
     
    721330        mv samhain.build.new  samhain.new || return 1
    722331
    723         # Set in server
    724 
    725         ./samhain_setpwd yule new $SHPW >/dev/null
    726 
    727         if test x$? = x0; then
    728             [ -z "$verbose" ] || log_msg_ok    "./samhain_setpwd yule new $SHPW";
    729         else
    730             [ -z "$quiet" ]   && log_msg_fail  "./samhain_setpwd yule new $SHPW";
    731             return 1
    732         fi
    733 
    734         mv yule.new yule || return 1
    735 
    736         #
    737 
    738         rm -f ./.samhain_log*
    739         rm -f ./.samhain_lock*
    740 
    741         SHCLT=`./yule -P $SHPW`
     332        rm -f ./.samhain_log.*
     333        rm -f ./.samhain_lock
     334
     335        SHCLT=`./yule -P $SHPW | sed s%HOSTNAME%${SH_LOCALHOST}%`
    742336
    743337        if test x$? = x0; then
     
    748342        fi
    749343
    750         SHCLT1=`echo "${SHCLT}"  | sed s%HOSTNAME%${SH_LOCALHOST}%`
    751         AHOST=`find_hostname`
    752         SHCLT2=`echo "${SHCLT}"  | sed s%HOSTNAME%${AHOST}%`
    753        
    754 
    755         echo $SHCLT1 >> testrc_2
    756         echo $SHCLT2 >> testrc_2
    757         cp testrc_2 testrc_22
     344        echo $SHCLT >> testrc_2
    758345
    759346        do_test_1
     
    766353        do_test_2
    767354        if [ $? -eq 0 ]; then
    768             [ -z "$quiet" ] && log_ok   2 ${MAXTEST} "Client logging, separate logfiles";
    769         else
    770             [ -z "$quiet" ] && log_fail 2 ${MAXTEST} "Client logging, separate logfiles";
     355            [ -z "$quiet" ] && log_ok   2 ${MAXTEST} "Client logging, seperate logfiles";
     356        else
     357            [ -z "$quiet" ] && log_fail 2 ${MAXTEST} "Client logging, seperate logfiles";
    771358        fi
    772359
     
    778365        fi
    779366
    780         do_test_4
    781         if [ $? -eq 0 ]; then
    782             [ -z "$quiet" ] && log_ok   4 ${MAXTEST} "Server command socket";
    783         else
    784             [ -z "$quiet" ] && log_fail 4 ${MAXTEST} "Server command socket";
    785         fi
    786 
    787         do_test_5
    788         if [ $? -eq 0 ]; then
    789             [ -z "$quiet" ] && log_ok   5 ${MAXTEST} "Server status file";
    790         else
    791             [ -z "$quiet" ] && log_fail 5 ${MAXTEST} "Server status file";
    792         fi
    793 
    794367        return $?
    795368}
    796369
    797 MAXTEST=5; export MAXTEST
     370MAXTEST=3; export MAXTEST
    798371
    799372testrun2 ()
Note: See TracChangeset for help on using the changeset viewer.