diff options
Diffstat (limited to 'posix/tst-execlp2.c')
-rw-r--r-- | posix/tst-execlp2.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/posix/tst-execlp2.c b/posix/tst-execlp2.c deleted file mode 100644 index 81a723d..0000000 --- a/posix/tst-execlp2.c +++ /dev/null @@ -1,82 +0,0 @@ -#include <errno.h> -#include <libgen.h> -#undef basename -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/stat.h> - - -static void prepare (int argc, char *argv[]); -static int do_test (void); -#define PREPARE(argc, argv) prepare (argc, argv) -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" - - -static char *copy; - -static void -prepare (int argc, char *argv[]) -{ - char *buf; - int off; - asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]); - if (buf == NULL) - { - puts ("asprintf failed"); - exit (1); - } - if (system (buf) != 0) - { - puts ("system failed"); - exit (1); - } - - /* Make it not executable. */ - copy = buf + off; - if (chmod (copy, 0666) != 0) - { - puts ("chmod failed"); - exit (1); - } - - add_temp_file (copy); -} - - -static int -do_test (void) -{ - /* Make sure we do not find a binary with the name we are going to - use. */ - char *bindir = strdupa (copy); - bindir = canonicalize_file_name (dirname (bindir)); - if (bindir == NULL) - { - puts ("canonicalize_file_name failed"); - return 1; - } - char *path; - asprintf (&path, "%s:../libio:../elf", bindir); - if (path == NULL) - { - puts ("asprintf failed"); - return 1; - } - - setenv ("PATH", path, 1); - - char *prog = basename (copy); - errno = 0; - execlp (prog, prog, NULL); - - if (errno != EACCES) - { - printf ("errno = %d (%m), expected EACCES\n", errno); - return 1; - } - - return 0; -} |