/* Check that --sysroot is applied to open(2). | |
#sim: --sysroot=@exedir@ | |
We assume, with EXE being the name of the executable: | |
- The simulator executes with cwd the same directory where the executable | |
is located (so argv[0] contains a plain filename without directory | |
components). | |
- There's no /EXE on the host file system. */ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <errno.h> | |
int main (int argc, char *argv[]) | |
{ | |
char *fnam = argv[0]; | |
FILE *f; | |
if (argv[0][0] != '/') | |
{ | |
fnam = malloc (strlen (argv[0]) + 2); | |
if (fnam == NULL) | |
abort (); | |
strcpy (fnam, "/"); | |
strcat (fnam, argv[0]); | |
} | |
f = fopen (fnam, "rb"); | |
if (f == NULL) | |
abort (); | |
fclose(f); | |
/* Cover another execution path. */ | |
if (fopen ("/nonexistent", "rb") != NULL | |
|| errno != ENOENT) | |
abort (); | |
printf ("pass\n"); | |
return 0; | |
} |