X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fhammock;fp=bin%2Fhammock;h=683f6f920efc3d93a75550d0cadffce992f168ef;hp=aecac0c8b7a5791dfb4217c9fbeb6a510c9256a4;hb=3fedceb439ef38bad555dd05abcafb88c067e485;hpb=b15a3ea355bd6520d6e2ef00402540f1b9dcfa62 diff --git a/bin/hammock b/bin/hammock index aecac0c..683f6f9 100755 --- a/bin/hammock +++ b/bin/hammock @@ -50,6 +50,7 @@ my $strip; # Can't bind address: Address already in use. # my $gdbserver; +my $valgrind; die if !GetOptions( "i|userid=s"=>\$userid, "force"=>\$force, @@ -70,6 +71,7 @@ die if !GetOptions( "gdbcvspie"=>\$gdbcvspie, "strip"=>\$strip, "gdbserver"=>\$gdbserver, + "valgrind"=>\$valgrind, ); $component and ($component=~m{^(?:(?:fedora|rhel)(?:gdb|binutils|glibc)|gdbcvs|binutilscvs|archer-.*|/home/.*)$} or die "-c|--component required to be: fedoragdb|rhelgdb|fedorabinutils|rhelbinutils|fedoraglibc|rhelglibc|gdbcvs|binutilscvs|archer-*|/home/*"); $component and $component=~m{^/home/} and (-f "$component/gdb/gdbtypes.c" or die "$component/gdb/gdbtypes.c not found"); @@ -85,7 +87,9 @@ if ($component=~/^(gdb|binutils)cvs$/) { !$gdbcvspie or $component eq "gdbcvs" or die "--gdbcvspie requires -c gdbcvs"; @target and ($srcrpm or $component=~/^(?:fedora|rhel)/) and die "--target is available only for baretestsuite modes"; $strip and ($srcrpm or $component=~/^(?:fedora|rhel)/) and die "--strip is available only for baretestsuite modes"; -$gdbserver and $component ne "gdbcvs" and die "--gdbserver is available only gdbcvs"; +$gdbserver and $component ne "gdbcvs" and die "--gdbserver is available only for gdbcvs"; +$valgrind and $component ne "gdbcvs" and die "--valgrind is available only for gdbcvs"; +$gdbserver and $valgrind and die "--gdbserver and --valgrind are mutually exclusive"; my %target; do { error "Duplicate target: $_\n" if $target{$_}++; } for @target; @arch="x86_64" if @target&&!@arch; @@ -443,7 +447,15 @@ while (@distrouse || keys(%child)) { @check=map("check//unix/$_",@check); @check=map({($_,"$_/-fPIE/-pie");} @check) if $gdbcvspie; # for i in ".join(" ",@check).";do orphanripper make -k \$i || :;done - mockrun "cd $baretestsuite; $errs12; cd gdb; ulimit -c unlimited; ".(!$gdbserver?"":'DEJAGNU=$HOME/src/runtest-gdbserver/site.exp ')."orphanripper make -k ".join(" ",@check).(!$gdbserver?"":' RUNTESTFLAGS=--target_board=native-gdbserver')." FORCE_PARALLEL=1 || :; ".q{for t in sum log;do for file in testsuite*/gdb.$t;do suffix="${file#testsuite.unix.}"; suffix="${suffix%/gdb.$t}"; ln $file}." $out/gdb".q{$suffix.$t || :; done; done;}; + mockrun "cd $baretestsuite; $errs12" + .(!$valgrind?"":' --without-python') # FIXME: Fix valgrind --suppressions + ."; cd gdb; ulimit -c unlimited; " + .(!$gdbserver?"":'DEJAGNU=$HOME/src/runtest-gdbserver/site.exp ') + .(!$valgrind?"":'DEJAGNU=$HOME/src/runtest-valgrind/site.exp ') + ."orphanripper make -k ".join(" ",@check) + .(!$gdbserver?"":' RUNTESTFLAGS=--target_board=native-gdbserver') + .(!$valgrind?"":' RUNTESTFLAGS=--target_board=valgrind') + ." FORCE_PARALLEL=1 || :; ".q{for t in sum log;do for file in testsuite*/gdb.$t;do suffix="${file#testsuite.unix.}"; suffix="${suffix%/gdb.$t}"; ln $file}." $out/gdb".q{$suffix.$t || :; done; done;}; } # gdbunpack does: # perl -i -pe 's{\Q'"$HOME"'\E/.*?/build/[^/]*/}{}g' "$base"/*