diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-04-14 21:20:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-04-14 21:20:51 +0000 |
commit | 506cbf1f43a3bba63b9f4dd6d5a9a1d15f0dcf2c (patch) | |
tree | ae94b10219ae5184bda4b83c0142886822412c9c /posix/tst-execvp3.c | |
parent | 806bc96abb96212c38ef54ea80a86b45647161eb (diff) | |
download | glibc-506cbf1f43a3bba63b9f4dd6d5a9a1d15f0dcf2c.tar.gz |
* posix/execvp.c (execvp): Use file name including path when
trying to run it with shell.
* posix/Makefile: Add rules to build and run tst-execvp3.
* posix/tst-execvp3.c: New file.
Diffstat (limited to 'posix/tst-execvp3.c')
-rw-r--r-- | posix/tst-execvp3.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/posix/tst-execvp3.c b/posix/tst-execvp3.c new file mode 100644 index 0000000000..5ebc87952d --- /dev/null +++ b/posix/tst-execvp3.c @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/stat.h> + + +static void do_prepare (void); +#define PREPARE(argc, argv) do_prepare () +static int do_test (void); +#define TEST_FUNCTION do_test () + +#include "../test-skeleton.c" + + +static char *fname; + +static void +do_prepare (void) +{ + int fd = create_temp_file ("testscript", &fname); + dprintf (fd, "echo foo\n"); + fchmod (fd, 0700); + close (fd); +} + + +static int +do_test (void) +{ + if (setenv ("PATH", test_dir, 1) != 0) + { + puts ("setenv failed"); + return 1; + } + + char *argv[] = { fname, NULL }; + execvp (basename (fname), argv); + + /* If we come here, the execvp call failed. */ + return 1; +} |