summary refs log tree commit diff
path: root/posix/wordexp-test.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-16 13:39:33 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-16 13:39:33 +0000
commit6760028826b40e45fe7f12b3e1ec934b032dba55 (patch)
treef3746c7e19be631712064d3c87a10ac85a52e385 /posix/wordexp-test.c
parentf649c2015a0c9cc4a2d71880fcb7fac0832af69c (diff)
downloadglibc-6760028826b40e45fe7f12b3e1ec934b032dba55.tar.gz
glibc-6760028826b40e45fe7f12b3e1ec934b032dba55.tar.xz
glibc-6760028826b40e45fe7f12b3e1ec934b032dba55.zip
Update.
1998-03-16 13:02  Tim Waugh  <tim@cyberelk.demon.co.uk>

	* posix/wordexp-tst.sh: Store test results in the
	${common_objpfx}posix directory.

	* posix/wordexp-test.c: Remove temporary directory afterwards.
Diffstat (limited to 'posix/wordexp-test.c')
-rw-r--r--posix/wordexp-test.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
index 965e26be45..b8a83c5211 100644
--- a/posix/wordexp-test.c
+++ b/posix/wordexp-test.c
@@ -152,11 +152,12 @@ command_line_test (const char *words)
 int
 main (int argc, char *argv[])
 {
+  const char *globfile[] = { "one", "two", "three", NULL };
   char tmpdir[32];
   struct passwd *pw;
   int test;
   int fail = 0;
-  int fd;
+  int i;
 
   if (argc > 1)
     {
@@ -164,16 +165,22 @@ main (int argc, char *argv[])
       return 0;
     }
 
+  cwd = getcwd (NULL, 0);
   setenv ("IFS", IFS, 1);
 
   /* Set up arena for pathname expansion */
   tmpnam (tmpdir);
-  if (mkdir (tmpdir, S_IRWXU) ||
-      chdir (tmpdir) ||
-      (fd = creat ("one", S_IRWXU)) == -1 || close (fd) ||
-      (fd = creat ("two", S_IRWXU)) == -1 || close (fd) ||
-      (fd = creat ("three", S_IRWXU)) == -1 || close (fd))
+  if (mkdir (tmpdir, S_IRWXU) || chdir (tmpdir))
     return -1;
+  else
+    {
+      int fd;
+
+      for (i = 0; globfile[i]; ++i)
+	if ((fd = creat (globfile[i], S_IRUSR | S_IWUSR)) == -1
+	    || close (fd))
+	  return -1;
+    }
 
   for (test = 0; test_case[test].retval != -1; test++)
     if (testit (&test_case[test]))
@@ -195,6 +202,16 @@ main (int argc, char *argv[])
 	++fail;
     }
 
+  /* Clean up */
+  for (i = 0; globfile[i]; ++i)
+    remove (globfile[i]);
+
+  if (cwd = NULL)
+    strcpy (cwd, "..");
+
+  chdir (cwd);
+  rmdir (tmpdir);
+
   return fail != 0;
 }