mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-27 04:41:02 +08:00
506cbf1f43
trying to run it with shell. * posix/Makefile: Add rules to build and run tst-execvp3. * posix/tst-execvp3.c: New file.
43 lines
706 B
C
43 lines
706 B
C
#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;
|
|
}
|