Do not leave files behind in /tmp from testing.

I noticed that glibc testsuite runs left several files behind in /tmp
(or TMPDIR, if different).  The problem was testcases that generate a
template for mkstemp / mkstemp64, ending with XXXXXX, then pass that
template to add_temp_file before calling mkstemp / mkstemp64, meaning
that the template ending with XXXXXX is stored in the list of
temporary files to delete (add_temp_file uses strdup so that the
original string doesn't need to stay live), not the actual filename as
determined by mkstemp / mkstemp64.  This patch fixes those tests to
call add_temp_file later.

Tested for x86_64 (that the files are no longer left behind by a
testsuite run and the modified tests still pass).

	* io/test-lfs.c (do_prepare): Do not call add_temp_file until
	after mkstemp64.
	* login/tst-utmp.c (do_prepare): Likewise.
	* rt/tst-aio.c (do_prepare): Likewise.
	* rt/tst-aio64.c (do_prepare): Likewise.
This commit is contained in:
Joseph Myers 2015-10-15 22:29:06 +00:00
parent fadd2ad9cc
commit cf1455657e
5 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2015-10-15 Joseph Myers <joseph@codesourcery.com>
* io/test-lfs.c (do_prepare): Do not call add_temp_file until
after mkstemp64.
* login/tst-utmp.c (do_prepare): Likewise.
* rt/tst-aio.c (do_prepare): Likewise.
* rt/tst-aio64.c (do_prepare): Likewise.
2015-10-15 Paul E. Murphy <murphyp@linux.vnet.ibm.com> 2015-10-15 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/elision-lock.c * sysdeps/unix/sysv/linux/powerpc/elision-lock.c

View File

@ -56,7 +56,6 @@ do_prepare (int argc, char *argv[])
name = malloc (name_len + sizeof ("/lfsXXXXXX")); name = malloc (name_len + sizeof ("/lfsXXXXXX"));
mempcpy (mempcpy (name, test_dir, name_len), mempcpy (mempcpy (name, test_dir, name_len),
"/lfsXXXXXX", sizeof ("/lfsXXXXXX")); "/lfsXXXXXX", sizeof ("/lfsXXXXXX"));
add_temp_file (name);
/* Open our test file. */ /* Open our test file. */
fd = mkstemp64 (name); fd = mkstemp64 (name);
@ -71,6 +70,7 @@ do_prepare (int argc, char *argv[])
else else
error (EXIT_FAILURE, errno, "cannot create temporary file"); error (EXIT_FAILURE, errno, "cannot create temporary file");
} }
add_temp_file (name);
if (getrlimit64 (RLIMIT_FSIZE, &rlim) != 0) if (getrlimit64 (RLIMIT_FSIZE, &rlim) != 0)
{ {

View File

@ -65,12 +65,12 @@ do_prepare (int argc, char *argv[])
name = malloc (name_len + sizeof ("/utmpXXXXXX")); name = malloc (name_len + sizeof ("/utmpXXXXXX"));
mempcpy (mempcpy (name, test_dir, name_len), mempcpy (mempcpy (name, test_dir, name_len),
"/utmpXXXXXX", sizeof ("/utmpXXXXXX")); "/utmpXXXXXX", sizeof ("/utmpXXXXXX"));
add_temp_file (name);
/* Open our test file. */ /* Open our test file. */
fd = mkstemp (name); fd = mkstemp (name);
if (fd == -1) if (fd == -1)
error (EXIT_FAILURE, errno, "cannot open test file `%s'", name); error (EXIT_FAILURE, errno, "cannot open test file `%s'", name);
add_temp_file (name);
} }
struct utmp entry[] = struct utmp entry[] =

View File

@ -54,12 +54,12 @@ do_prepare (int argc, char *argv[])
name = malloc (name_len + sizeof ("/aioXXXXXX")); name = malloc (name_len + sizeof ("/aioXXXXXX"));
mempcpy (mempcpy (name, test_dir, name_len), mempcpy (mempcpy (name, test_dir, name_len),
"/aioXXXXXX", sizeof ("/aioXXXXXX")); "/aioXXXXXX", sizeof ("/aioXXXXXX"));
add_temp_file (name);
/* Open our test file. */ /* Open our test file. */
fd = mkstemp (name); fd = mkstemp (name);
if (fd == -1) if (fd == -1)
error (EXIT_FAILURE, errno, "cannot open test file `%s'", name); error (EXIT_FAILURE, errno, "cannot open test file `%s'", name);
add_temp_file (name);
} }

View File

@ -55,12 +55,12 @@ do_prepare (int argc, char *argv[])
name = malloc (name_len + sizeof ("/aioXXXXXX")); name = malloc (name_len + sizeof ("/aioXXXXXX"));
mempcpy (mempcpy (name, test_dir, name_len), mempcpy (mempcpy (name, test_dir, name_len),
"/aioXXXXXX", sizeof ("/aioXXXXXX")); "/aioXXXXXX", sizeof ("/aioXXXXXX"));
add_temp_file (name);
/* Open our test file. */ /* Open our test file. */
fd = mkstemp (name); fd = mkstemp (name);
if (fd == -1) if (fd == -1)
error (EXIT_FAILURE, errno, "cannot open test file `%s'", name); error (EXIT_FAILURE, errno, "cannot open test file `%s'", name);
add_temp_file (name);
} }