aboutsummaryrefslogtreecommitdiff
path: root/posix/wordexp-test.c
diff options
context:
space:
mode:
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 965e26b..b8a83c5 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;
}