summaryrefslogtreecommitdiff
path: root/tests/scripts/features/temp_stdin
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2023-03-26 15:35:00 -0400
committerPaul Smith <psmith@gnu.org>2023-04-01 11:13:12 -0400
commit9db74434cd34b2b875b3f9bfbab4f1e0b682e27c (patch)
treeb488a9766c9e1a932518fd6e4e1db25ae6b788b5 /tests/scripts/features/temp_stdin
parent23f70b0cb86208d3b9b47b0efa9707a1dac5360b (diff)
downloadmake-git-9db74434cd34b2b875b3f9bfbab4f1e0b682e27c.tar.gz
Clean up memory leak warnings from ASAN and Valgrind
* src/main.c (main): Add "sanitize" to .FEATURES if ASAN is enabled. * src/expand.c (expand_variable_output): Remember "recursive" setting in case it's changed by the expansion of the variable. * src/file.c (rehash_file): If we drop a file from the global 'files' hash, remember it in rehashed_files. We can't free it because it's still being referenced (callers will invoke check_renamed()) but it will be a leak since it's no longer referenced by 'files'. * src/remake.c (update_file_1): If we drop a dependency, remember it in dropped_list. We can't free it because it's still being referenced by callers but it will be a leak since it's no longer referenced as a prerequisite. * tests/scripts/functions/guile: Don't run Guile tests when ASAN is enabled. * tests/scripts/functions/wildcard: Enabling ASAN causes glob(3) to break! Don't run this test. * tests/scripts/features/exec: Valgrind's exec() doesn't support scripts with no shbang. * tests/scripts/jobserver: Valgrind fails if TMPDIR is set to an invalid directory: skip those tests. * tests/scripts/features/output-sync: Ditto. * tests/scripts/features/temp_stdin: Ditto.
Diffstat (limited to 'tests/scripts/features/temp_stdin')
-rw-r--r--tests/scripts/features/temp_stdin19
1 files changed, 12 insertions, 7 deletions
diff --git a/tests/scripts/features/temp_stdin b/tests/scripts/features/temp_stdin
index fee32a90..201dcb94 100644
--- a/tests/scripts/features/temp_stdin
+++ b/tests/scripts/features/temp_stdin
@@ -115,16 +115,21 @@ rmdir($tmakedir);
# makefile from stdin to a temporary file.
# Create a non-writable temporary directory.
-my $tdir = 'test_tmp_dir';
-mkdir($tdir, 0500);
-$ENV{'TMPDIR'} = $tdir;
-close(STDIN);
-open(STDIN, "<", 'input.mk') || die "$0: cannot open input.mk for reading: $!";
+# If we do this Valgrind fails because it cannot write temp files... the docs
+# don't describe any way to tell valgrind to use a directory other than TMPDIR.
-run_make_test(q!
+if (!$valgrind) {
+ my $tdir = 'test_tmp_dir';
+ mkdir($tdir, 0500);
+ $ENV{'TMPDIR'} = $tdir;
+ close(STDIN);
+ open(STDIN, "<", 'input.mk') || die "$0: cannot open input.mk for reading: $!";
+
+ run_make_test(q!
all:; $(info hello, world)
!, '-f-', '/cannot store makefile from stdin to a temporary file. Stop./', 512);
-rmdir($tdir);
+ rmdir($tdir);
+}
}
# This close MUST come at the end of the test!!