Changeset 2009

Show
Ignore:
Timestamp:
10/27/2007 11:05:43 PM (10 months ago)
Author:
jan
Message:

fixed support for tracing on solaris with gdb and truss

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/LightyTest.pm

    r1949 r2009  
    9292 
    9393        unlink($self->{LIGHTTPD_PIDFILE}); 
     94        my $cmdline = ""; 
    9495        if (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'strace') { 
    95                 system("strace -tt -s 512 -o strace ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." &"); 
     96                $cmdline = "strace -tt -s 512 -o strace ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." &"; 
     97        } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'truss') { 
     98                $cmdline = "truss -a -l -w all -v all -o strace ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." &"; 
     99        } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'gdb') { 
     100                $cmdline = "gdb --batch --ex 'run' --ex 'bt' --args ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." > gdb.out &"; 
     101 
    96102        } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'valgrind') { 
    97                 system("valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --log-file=valgrind ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." &"); 
     103                $cmdline = "valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --log-file=valgrind ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}." &"; 
    98104        } else { 
    99                 system($self->{LIGHTTPD_PATH}." -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}); 
    100         } 
     105                $cmdline = $self->{LIGHTTPD_PATH}." -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}; 
     106        } 
     107        # diag("starting lighttpd at :".$self->{PORT}.", cmdline: ".$cmdline ); 
     108        system($cmdline) == 0 or die($?); 
    101109 
    102110        select(undef, undef, undef, 0.1); 
     
    131139        my @request = $t->{REQUEST}; 
    132140        my @response = $t->{RESPONSE}; 
     141        my $is_debug = $ENV{"TRACE_HTTP"}; 
    133142 
    134143        my $remote =  
     
    144153        $remote->autoflush(1); 
    145154 
     155        diag("sending request header to ".$host.":".$self->{PORT}) if $is_debug; 
    146156        foreach(@request) { 
    147157                # pipeline requests 
     
    150160 
    151161                print $remote $_.$BLANK;         
    152         } 
     162                diag("<< ".$_) if $is_debug; 
     163        } 
     164        diag("... done") if $is_debug; 
    153165 
    154166        my $lines = ""; 
    155167 
     168        diag("receiving response") if $is_debug; 
    156169        # read everything 
    157170        while(<$remote>) { 
    158171                $lines .= $_; 
    159         } 
     172                diag(">> ".$_) if $is_debug; 
     173        } 
     174        diag("... done") if $is_debug; 
    160175         
    161176        close $remote;