about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-11-18 14:11:09 +0100
committerFlorian Weimer <fweimer@redhat.com>2017-11-18 14:11:09 +0100
commit8adfb0eeffd1888f9b53b8d8677eb1656cd20e47 (patch)
tree1b5cabdb49792cbee8839fee6d907b5d9513a4b0
parentdf0c40ee3a893238ac11f4c0d876a0c3b49d198d (diff)
downloadglibc-8adfb0eeffd1888f9b53b8d8677eb1656cd20e47.tar.gz
glibc-8adfb0eeffd1888f9b53b8d8677eb1656cd20e47.tar.xz
glibc-8adfb0eeffd1888f9b53b8d8677eb1656cd20e47.zip
support_create_temp_directory: Align behavior with create_temp_file
create_temp_file automatically supplies the test directory and the
XXXXXX suffix.  support_create_temp_directory required the caller to
specify them, which was confusing.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
-rw-r--r--ChangeLog9
-rw-r--r--support/support_chroot.c7
-rw-r--r--support/temp_file.c10
-rw-r--r--support/temp_file.h6
-rw-r--r--support/tst-xreadlink.c2
5 files changed, 19 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 604d571ca6..c58c58cc2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-11-18  Florian Weimer  <fweimer@redhat.com>
+
+	* support/temp_file.c (support_create_temp_directory): Use
+	test_dir and do not rely on the presence of the XXXXXX suffix.
+	* support/temp_file.h (support_create_temp_directory): Update
+	comment.
+	* support/tst-xreadlink.c (do_test): Adjust.
+	* support/support_chroot.c (support_chroot_create): Likewise.
+
 2017-11-17  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/bits/hwcap.h (PPC_FEATURE2_HTM_NO_SUSPEND): New
diff --git a/support/support_chroot.c b/support/support_chroot.c
index f6fad18f33..693813f694 100644
--- a/support/support_chroot.c
+++ b/support/support_chroot.c
@@ -45,12 +45,7 @@ struct support_chroot *
 support_chroot_create (struct support_chroot_configuration conf)
 {
   struct support_chroot *chroot = xmalloc (sizeof (*chroot));
-
-  {
-    char *template = xasprintf ("%s/tst-resolv-res_init-XXXXXX", test_dir);
-    chroot->path_chroot = support_create_temp_directory (template);
-    free (template);
-  }
+  chroot->path_chroot = support_create_temp_directory ("tst-resolv-res_init-");
 
   /* Create the /etc directory in the chroot environment.  */
   char *path_etc = xasprintf ("%s/etc", chroot->path_chroot);
diff --git a/support/temp_file.c b/support/temp_file.c
index cbd54e2e17..547263a3e4 100644
--- a/support/temp_file.c
+++ b/support/temp_file.c
@@ -89,14 +89,14 @@ create_temp_file (const char *base, char **filename)
 char *
 support_create_temp_directory (const char *base)
 {
-  char *base_copy = xstrdup (base);
-  if (mkdtemp (base_copy) == NULL)
+  char *path = xasprintf ("%s/%sXXXXXX", test_dir, base);
+  if (mkdtemp (path) == NULL)
     {
-      printf ("error: mkdtemp (\"%s\"): %m", base);
+      printf ("error: mkdtemp (\"%s\"): %m", path);
       exit (1);
     }
-  add_temp_file (base_copy);
-  return base_copy;
+  add_temp_file (path);
+  return path;
 }
 
 /* Helper functions called by the test skeleton follow.  */
diff --git a/support/temp_file.h b/support/temp_file.h
index dfefe585de..3b8563e115 100644
--- a/support/temp_file.h
+++ b/support/temp_file.h
@@ -32,9 +32,9 @@ void add_temp_file (const char *name);
    *FILENAME.  */
 int create_temp_file (const char *base, char **filename);
 
-/* Create a temporary directory and schedule it for deletion.  BASE
-   must end with the six characters "XXXXXX".  Return the name of the
-   temporary directory.  The caller should free the string.  */
+/* Create a temporary directory and schedule it for deletion.  BASE is
+   used as a prefix for the unique directory name, which the function
+   returns.  The caller should free this string.  */
 char *support_create_temp_directory (const char *base);
 
 __END_DECLS
diff --git a/support/tst-xreadlink.c b/support/tst-xreadlink.c
index cb2c12a888..a4a22812c1 100644
--- a/support/tst-xreadlink.c
+++ b/support/tst-xreadlink.c
@@ -29,7 +29,7 @@
 static int
 do_test (void)
 {
-  char *dir = support_create_temp_directory ("/tmp/tst-xreadlink-XXXXXX");
+  char *dir = support_create_temp_directory ("tst-xreadlink-");
   char *symlink_name = xasprintf ("%s/symlink", dir);
   add_temp_file (symlink_name);