diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2025-07-18 17:03:04 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2025-07-19 12:43:26 -0700 |
commit | 55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8 (patch) | |
tree | b7c8f04bacd994269d1c6a6b8cb871924b7deeba | |
parent | 01196393c257c59f63e0e14fa1bfe8d2a699bf2d (diff) | |
download | glibc-55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8.zip glibc-55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8.tar.gz glibc-55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8.tar.bz2 |
io/tst-stat.c: Use a temporary directory for symlink test
Call support_create_temp_directory to create a temporary directory for
symlink test, instead of a fixed file in the glibc source tree, to avoid
the race condition when there are more than one glibc tests running at the
same time with the same glibc source tree. This fixes BZ #33178.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Andreas K. Huettel <dilfridge@gentoo.org>
-rw-r--r-- | io/tst-stat.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/io/tst-stat.c b/io/tst-stat.c index aeea435..5e0bfcc 100644 --- a/io/tst-stat.c +++ b/io/tst-stat.c @@ -27,6 +27,7 @@ #include <sys/sysmacros.h> #include <stdio.h> #include <unistd.h> +#include <stdlib.h> static void stat_check (int fd, const char *path, struct stat *st) @@ -78,7 +79,8 @@ static int do_test (void) { char *path; - const char *linkame = "tst-fstat.linkname"; + char *tempdir = support_create_temp_directory ("tst-stat-"); + char *linkname = xasprintf ("%s/tst-fstat.linkname", tempdir); int fd = create_temp_file ("tst-fstat.", &path); TEST_VERIFY_EXIT (fd >= 0); support_write_file_string (path, "abc"); @@ -122,9 +124,12 @@ do_test (void) } } - TEST_COMPARE (symlink ("tst-fstat.target", linkame), 0); - add_temp_file (linkame); - fstatat_link (linkame, &st); + TEST_COMPARE (symlink ("tst-fstat.target", linkname), 0); + add_temp_file (linkname); + fstatat_link (linkname, &st); + + free (linkname); + free (tempdir); return 0; } |