Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/testcompile.sh

    r30 r19  
    11#! /bin/sh
    22
    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 
    22 MAXTEST=57; export MAXTEST
    23 
    24 run_flawfinder ()
    25 {
    26     flawfinder --minlevel=3 --quiet src/s*.c | \
    27         egrep '^No hits found.' >/dev/null 2>&1
    28     if [ $? -eq 0 ]; then
    29         [ -z "$quiet" ] &&     log_ok   $2 ${MAXTEST} "$TEST";
    30     else
    31         flawfinder --minlevel=3 --quiet src/s*.c >test_log 2>&1
    32         [ -z "$quiet" ] && log_fail $2 ${MAXTEST} "$TEST";
    33         return 1
    34     fi
    35 }
    36 
    37 run_smatch ()
    38 {
    39     export CDIR=`pwd`;
    40 
    41     if [ -z "$doall" ]; then
    42         [ -z "$quiet" ] && log_skip $2 ${MAXTEST} "$TEST (smatch)";
    43         return 0
    44     fi
    45 
    46     if [ "x$3" = "xdebug" ]; then memcheck=debug; else memcheck=simple; fi
    47     if [ -f ../sm_scripts/smatch.pm ]; then
    48         (
    49             cd ../sm_scripts;
    50            
    51             for i in ${CDIR}/*.c.sm ; do
    52                 # echo $i;
    53                 cat $i | ./unreached_code.pl;
    54                 cat $i | ./ampersand_missing.sh;
    55                 cat $i | ./uninitialized.pl;
    56                 cat $i | ./eqeq.pl;
    57                 cat $i | ./for_bounds.pl;
    58                 cat $i | ./unchecked_returns.pl;
    59                 cat $i | ./unreached_code.pl;
    60                 cat $i | ./uninitialized.pl;
    61                 # from http://people.redhat.com/mstefani/wine/smatch/
    62                 if [ -f ./while_for_check.pl ]; then
    63                     cat $i | ./while_for_check.pl;
    64                 fi
    65                 # --> end wine <--
    66                 # samhain specific
    67                 if [ $memcheck = xsimple ]; then
    68                     if [ -f ./samhain_unfree.pl ]; then
    69                         cat $i | ./samhain_unfree.pl | \
    70                             egrep -v 'x_cutest_.*Test_' | \
    71                             egrep -v 'x_sh_unix.c .... .... sh_unix_copyenv';
    72                     fi
    73                 fi
    74                 if [ $memcheck = xdebug ]; then
    75                     if [ -f ./samhain_unfree_debug.pl ]; then
    76                         cat $i | ./samhain_unfree_debug.pl | \
    77                             egrep -v 'x_cutest_.*Test_' | \
    78                             egrep -v 'x_sh_unix.c .... .... sh_unix_copyenv';
    79                     fi
    80                 fi
    81                 # --> end samhain specific <--
    82                 #cat $i | ./unfree.pl | \
    83                 #    egrep -v 'x_cutest_.*Test_' | \
    84                 #    grep -v 'x_sh_unix.c .... .... sh_unix_copyenv';
    85                 touch list_null_funcs_uniq;
    86                 cat $i | ./deference_check.pl;
    87                 rm -f list_null_funcs_uniq;
    88                 rm -f $i
    89             done
    90         ) >test_log_smatch 2>&1
    91         if [ -f test_log_smatch ]; then
    92             lines=`cat test_log_smatch | wc -l`
    93             if [ $lines -ne 0 ]; then
    94                 cat test_log_smatch
    95                 rm -f test_log_smatch
    96                 [ -z "$quiet" ] && log_fail $2 ${MAXTEST} "$TEST (smatch)";
    97                 return 1
    98             fi
    99         fi
    100         [ -z "$quiet" ] && log_ok $2 ${MAXTEST} "$TEST (smatch)";
    101         return 0
    102     fi
    103     [ -z "$quiet" ] && log_skip $2 ${MAXTEST} "$TEST (smatch)";
    104     return 0
    105 }
     3MAXTEST=28; export MAXTEST
    1064
    1075testmake ()
     
    1108        if test x$1 = x0; then
    1119                [ -z "$verbose" ]     ||  log_msg_ok  "configure...  $TEST";
    112                 $MAKE ${SMATCH} cutest > /dev/null 2>> test_log
     10                $MAKE cutest > /dev/null 2>> test_log
    11311                if test x$? = x0; then
    11412                    [ -z "$verbose" ] || log_msg_ok   "make cutest... $TEST";
     
    13634        log_start "COMPILE"
    13735
    138         if [ -f /usr/local/gcc-smatch/bin/gcc ]; then
    139             SAVE_CC="${CC}"
    140             SMATCH="DBGDEF=--smatch"; export SMATCH
    141             CC="/usr/local/gcc-smatch/bin/gcc"; export CC
    142         fi
    143 
    14436        num=0
    14537        numfail=0
    14638
    14739        #
    148         # test flawfinder
    149         #
    150         TEST="${S}check w/flawfinder${E}"
    151         #
    152         #
    153         let "num = num + 1" >/dev/null
    154         FLAWFINDER=`find_path flawfinder`
    155         #
    156         if [ -z "$FLAWFINDER" ]; then
    157             log_skip $num $MAXTEST 'check w/flawfinder (not in PATH)'
    158         else
    159             run_flawfinder 0 $num || let "numfail = numfail + 1"  >/dev/null
    160         fi
    161         #
    162 
    163         #
    16440        # test standalone compilation
    16541        #
    166         TEST="${S}standalone w/suidcheck${E}"
     42        TEST="${S}standalone agent w/suidcheck${E}"
    16743        #
    16844        if test -r "Makefile"; then
     
    17450        let "num = num + 1" >/dev/null
    17551        testmake $? $num || let "numfail = numfail + 1"  >/dev/null
    176         let "num = num + 1" >/dev/null
    177         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    17852
    17953        #
    18054        # test standalone compilation
    18155        #
    182         TEST="${S}standalone w/mounts-check w/userfiles${E}"
     56        TEST="${S}standalone agent w/mounts-check and w/userfiles${E}"
    18357        #
    18458        if test -r "Makefile"; then
     
    19064        let "num = num + 1" >/dev/null
    19165        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    192         let "num = num + 1" >/dev/null
    193         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    19466
    19567
     
    19769        # test standalone compilation
    19870        #
    199         TEST="${S}standalone w/timeserver and w/msgqueue${E}"
     71        TEST="${S}standalone agent w/timeserver and w/message-queue${E}"
    20072        #
    20173        if test -r "Makefile"; then
     
    20779        let "num = num + 1" >/dev/null
    20880        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    209         let "num = num + 1" >/dev/null
    210         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    21181
    21282        #
    21383        # test standalone compilation with --with-nocl=PW
    21484        #
    215         TEST="${S}standalone w/nocl${E}"
     85        TEST="${S}standalone agent w/nocl${E}"
    21686        #
    21787        if test -r "Makefile"; then
     
    22393        let "num = num + 1" >/dev/null
    22494        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    225         let "num = num + 1" >/dev/null
    226         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    22795
    22896        #
    22997        # test standalone compilation w/ debug
    23098        #
    231         TEST="${S}standalone w/debug${E}"
     99        TEST="${S}standalone agent w/debug${E}"
    232100        #
    233101        if test -r "Makefile"; then
     
    239107        let "num = num + 1" >/dev/null
    240108        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    241         let "num = num + 1" >/dev/null
    242         run_smatch $? $num debug || let "numfail = numfail + 1"  >/dev/null
    243109
    244110        #
    245111        # test standalone compilation w/ gpg
    246112        #
    247         TEST="${S}standalone w/gpg${E}"
     113        TEST="${S}standalone agent w/gpg${E}"
    248114        #
    249115        GPG=`find_path gpg`
     
    252118        if [ -z "$GPG" ]; then
    253119            log_skip $num $MAXTEST 'gpg not in PATH'
    254             let "num = num + 1" >/dev/null
    255120        else
    256121            if test -r "Makefile"; then
     
    261126            #
    262127            testmake $? $num || let "numfail = numfail + 1" >/dev/null
    263             let "num = num + 1" >/dev/null
    264             run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    265128        fi
    266129
     
    268131        # test standalone compilation w/stealth
    269132        #
    270         TEST="${S}standalone w/stealth${E}"
     133        TEST="${S}standalone agent w/stealth${E}"
    271134        #
    272135        if test -r "Makefile"; then
     
    278141        let "num = num + 1" >/dev/null
    279142        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    280         let "num = num + 1" >/dev/null
    281         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    282143
    283144        #
    284145        # test standalone compilation w/logwatch
    285146        #
    286         TEST="${S}standalone w/login-watch${E}"
     147        TEST="${S}standalone agent w/login-watch${E}"
    287148        #
    288149        if test -r "Makefile"; then
     
    294155        let "num = num + 1" >/dev/null
    295156        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    296         let "num = num + 1" >/dev/null
    297         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    298157
    299158        #
    300159        # test standalone compilation w/mysql
    301160        #
    302         TEST="${S}standalone w/mysql${E}"
     161        TEST="${S}standalone agent w/mysql${E}"
    303162        #
    304163        if test -r "Makefile"; then
     
    310169        let "num = num + 1" >/dev/null
    311170        testmake $? $num "skip" || let "numfail = numfail + 1" >/dev/null
    312         let "num = num + 1" >/dev/null
    313         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    314171
    315172        #
    316173        # test standalone compilation w/postgresql
    317174        #
    318         TEST="${S}standalone w/postgresql${E}"
     175        TEST="${S}standalone agent w/postgresql${E}"
    319176        #
    320177        if test -r "Makefile"; then
     
    326183        let "num = num + 1" >/dev/null
    327184        testmake $? $num "skip" || let "numfail = numfail + 1" >/dev/null
    328         let "num = num + 1" >/dev/null
    329         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    330185
    331186        #
    332187        # test standalone compilation
    333188        #
    334         TEST="${S}standalone w/o mail${E}"
     189        TEST="${S}standalone agent w/o mail${E}"
    335190        #
    336191        if test -r "Makefile"; then
     
    342197        let "num = num + 1" >/dev/null
    343198        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    344         let "num = num + 1" >/dev/null
    345         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    346199
    347200        #
    348201        # test standalone compilation
    349202        #
    350         TEST="${S}standalone w/o external${E}"
     203        TEST="${S}standalone agent w/o external scripts${E}"
    351204        #
    352205        if test -r "Makefile"; then
     
    358211        let "num = num + 1" >/dev/null
    359212        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    360         let "num = num + 1" >/dev/null
    361         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    362213
    363214        # echo; echo "${S}__ TEST CLIENT/SERVER __${E}"; echo;
     
    376227        let "num = num + 1" >/dev/null
    377228        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    378         let "num = num + 1" >/dev/null
    379         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    380229       
    381230        if test -r "Makefile"; then
     
    387236        let "num = num + 1" >/dev/null
    388237        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    389         let "num = num + 1" >/dev/null
    390         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    391238
    392239        #
     
    400247        if [ -z "$GPG" ]; then
    401248            log_skip $num $MAXTEST 'gpg not in PATH'
    402             let "num = num + 3" >/dev/null
     249            let "num = num + 1" >/dev/null
     250            log_skip $num $MAXTEST 'gpg not in PATH'
    403251        else
    404252            if test -r "Makefile"; then
     
    409257            #
    410258            testmake $? $num || let "numfail = numfail + 1" >/dev/null
    411             let "num = num + 1" >/dev/null
    412             run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    413259            #
    414260            if test -r "Makefile"; then
     
    420266            let "num = num + 1" >/dev/null
    421267            testmake $? $num || let "numfail = numfail + 1" >/dev/null
    422             let "num = num + 1" >/dev/null
    423             run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    424268        fi
    425269
     
    438282        let "num = num + 1" >/dev/null
    439283        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    440         let "num = num + 1" >/dev/null
    441         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    442284        #
    443285        if test -r "Makefile"; then
     
    449291        let "num = num + 1" >/dev/null
    450292        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    451         let "num = num + 1" >/dev/null
    452         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    453293
    454294        #
     
    465305        let "num = num + 1" >/dev/null
    466306        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    467         let "num = num + 1" >/dev/null
    468         run_smatch $? $num debug || let "numfail = numfail + 1"  >/dev/null
    469307        #
    470308        if test -r "Makefile"; then
     
    476314        let "num = num + 1" >/dev/null
    477315        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    478         let "num = num + 1" >/dev/null
    479         run_smatch $? $num debug || let "numfail = numfail + 1"  >/dev/null
    480316
    481317        #
     
    492328        let "num = num + 1" >/dev/null
    493329        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    494         let "num = num + 1" >/dev/null
    495         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    496330        #
    497331        if test -r "Makefile"; then
     
    503337        let "num = num + 1" >/dev/null
    504338        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    505         let "num = num + 1" >/dev/null
    506         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    507339
    508340        #
     
    519351        let "num = num + 1" >/dev/null
    520352        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    521         let "num = num + 1" >/dev/null
    522         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    523353        #
    524354        if test -r "Makefile"; then
     
    530360        let "num = num + 1" >/dev/null
    531361        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    532         let "num = num + 1" >/dev/null
    533         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    534362
    535363        #
     
    546374        let "num = num + 1" >/dev/null
    547375        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    548         let "num = num + 1" >/dev/null
    549         run_smatch $? $num debug || let "numfail = numfail + 1"  >/dev/null
    550376        #
    551377        if test -r "Makefile"; then
     
    557383        let "num = num + 1" >/dev/null
    558384        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    559         let "num = num + 1" >/dev/null
    560         run_smatch $? $num debug || let "numfail = numfail + 1"  >/dev/null
    561385
    562386        #
    563387        # test client/server compilation
    564388        #
    565         TEST="${S}client/server application w/o external${E}"
     389        TEST="${S}client/server application w/o external scripts${E}"
    566390        #
    567391        if test -r "Makefile"; then
     
    573397        let "num = num + 1" >/dev/null
    574398        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    575         let "num = num + 1" >/dev/null
    576         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    577399        #
    578400        if test -r "Makefile"; then
     
    584406        let "num = num + 1" >/dev/null
    585407        testmake $? $num || let "numfail = numfail + 1" >/dev/null
    586         let "num = num + 1" >/dev/null
    587         run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
    588 
    589         [ -z "${SMATCH}" ] || { CC="${SAVE_CC}"; export CC; }
    590408
    591409        log_end "COMPILE"
Note: See TracChangeset for help on using the changeset viewer.