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

View File

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

View File

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