skip t/op/dump.t under Address Sanitizer
authorDavid Mitchell <davem@iabyn.com>
Thu, 9 Apr 2015 14:23:42 +0000 (15:23 +0100)
committerDavid Mitchell <davem@iabyn.com>
Thu, 9 Apr 2015 14:23:42 +0000 (15:23 +0100)
On my Fedora 20 system, when a process built with "clang
-fsanitize=address" coredumps, some clever root process called
abrt-install-ccpp-hook spends hours reading in zillions of zero bytes from
stdin. I guess this is due to ASan storing instrumentation data at very high
addresses, so the memory image of the dumping process consists of
terrabytes of intervening zeroes.

Whether the abrt system is doing doing something useful or is merely
buggy, the net effect is that t/op/dump.t (which purposely does a
coredump) causes the entire test harness to hang.

This commit just makes t/op/dump.c skip tests if -fsanitize is in
$Config{ccflags}.

t/op/dump.t

index a858643..1db1637 100644 (file)
@@ -25,6 +25,9 @@ skip_all("only tested on devel builds")
 skip_all("no point in dumping on $^O")
   unless $^O =~ /^(linux|.*bsd|solaris)$/;
 
+skip_all("avoid coredump under ASan")
+  if  $Config{ccflags} =~ /-fsanitize=/;
+
 # execute in a work directory so File::Temp can clean up core dumps
 my $tmp = tempdir(CLEANUP => 1);