Blame posix/tst-execvp3.c

Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <stdlib.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
#include <unistd.h>
Packit 6c4009
#include <sys/stat.h>
Packit 6c4009
Packit 6c4009
Packit 6c4009
static void do_prepare (void);
Packit 6c4009
#define PREPARE(argc, argv) do_prepare ()
Packit 6c4009
static int do_test (void);
Packit 6c4009
#define TEST_FUNCTION do_test ()
Packit 6c4009
Packit 6c4009
#include "../test-skeleton.c"
Packit 6c4009
Packit 6c4009
#ifndef EXECVP
Packit 6c4009
# define EXECVP(file, argv)  execvp (file, argv)
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
static char *fname;
Packit 6c4009
Packit 6c4009
static void
Packit 6c4009
do_prepare (void)
Packit 6c4009
{
Packit 6c4009
  int fd = create_temp_file ("testscript", &fname);
Packit 6c4009
  dprintf (fd, "echo foo\n");
Packit 6c4009
  fchmod (fd, 0700);
Packit 6c4009
  close (fd);
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
Packit 6c4009
static int
Packit 6c4009
do_test (void)
Packit 6c4009
{
Packit 6c4009
  if  (setenv ("PATH", test_dir, 1) != 0)
Packit 6c4009
    {
Packit 6c4009
      puts ("setenv failed");
Packit 6c4009
      return 1;
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  char *argv[] = { fname, NULL };
Packit 6c4009
  EXECVP (basename (fname), argv);
Packit 6c4009
Packit 6c4009
  /* If we come here, the execvp call failed.  */
Packit 6c4009
  return 1;
Packit 6c4009
}