diff options
author | Paul Smith <psmith@gnu.org> | 2023-03-26 15:35:00 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2023-04-01 11:13:12 -0400 |
commit | 9db74434cd34b2b875b3f9bfbab4f1e0b682e27c (patch) | |
tree | b488a9766c9e1a932518fd6e4e1db25ae6b788b5 /tests/scripts/features/temp_stdin | |
parent | 23f70b0cb86208d3b9b47b0efa9707a1dac5360b (diff) | |
download | make-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_stdin | 19 |
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!! |