perl-module: Skip memory test if Address Sanitizer is in use.
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 16 Dec 2021 02:56:45 +0000 (18:56 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 16 Dec 2021 03:10:40 +0000 (19:10 -0800)
Otherwise, Address Sanitizer produces unexpected memory behavior and
causes this test to fail even though there is no real leak.

tests/perl-module.at

index 329a3f808d21365deee7de670a5722bca8667fb0..244b1b9999dc537457a6176f3a8eb7b6271f14d3 100644 (file)
@@ -23,7 +23,10 @@ asan_lib=$("$abs_top_builddir/libtool" --mode=execute ldd \
                "$abs_top_builddir/src/ui/terminal/pspp" 2>/dev/null \
           | grep asan \
           | awk '{print $3}')
-if test ! -e "$asan_lib"; then
+if test -e "$asan_lib"; then
+    USING_ASAN=:
+else
+    USING_ASAN=false
     asan_lib=
 fi
 
@@ -676,6 +679,9 @@ AT_SKIP_IF([test "$WITH_PERL_MODULE" = no])
 AT_CHECK([perl -MText::Diff -e '' || exit 77])
 # Skip this test if Perl's Memory::Usage module is not installed.
 AT_CHECK([perl -MMemory::Usage -e '' || exit 77])
+# Skip this test if Address Sanitizer is in use because it will
+# screw up memory accounting and look like a leak.
+AT_SKIP_IF([$USING_ASAN])
 AT_CHECK([run_perl_module "$abs_top_builddir/perl-module/t/Pspp.t"], [0],
   [[1..38
 ok 1 - use PSPP;