equal
deleted
inserted
replaced
|
1 /* Check that --sysroot is applied to open(2). |
|
2 #sim: --sysroot=@exedir@ |
|
3 |
|
4 We assume, with EXE being the name of the executable: |
|
5 - The simulator executes with cwd the same directory where the executable |
|
6 is located (so argv[0] contains a plain filename without directory |
|
7 components). |
|
8 - There's no /EXE on the host file system. */ |
|
9 |
|
10 #include <stdio.h> |
|
11 #include <stdlib.h> |
|
12 #include <string.h> |
|
13 #include <errno.h> |
|
14 int main (int argc, char *argv[]) |
|
15 { |
|
16 char *fnam = argv[0]; |
|
17 FILE *f; |
|
18 if (argv[0][0] != '/') |
|
19 { |
|
20 fnam = malloc (strlen (argv[0]) + 2); |
|
21 if (fnam == NULL) |
|
22 abort (); |
|
23 strcpy (fnam, "/"); |
|
24 strcat (fnam, argv[0]); |
|
25 } |
|
26 |
|
27 f = fopen (fnam, "rb"); |
|
28 if (f == NULL) |
|
29 abort (); |
|
30 close (f); |
|
31 |
|
32 /* Cover another execution path. */ |
|
33 if (fopen ("/nonexistent", "rb") != NULL |
|
34 || errno != ENOENT) |
|
35 abort (); |
|
36 printf ("pass\n"); |
|
37 return 0; |
|
38 } |