]>
Commit | Line | Data |
---|---|---|
dd43edf4 TS |
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) | |
7d37435b | 22 | abort (); |
dd43edf4 TS |
23 | strcpy (fnam, "/"); |
24 | strcat (fnam, argv[0]); | |
25 | } | |
26 | ||
27 | f = fopen (fnam, "rb"); | |
28 | if (f == NULL) | |
29 | abort (); | |
2917dce4 | 30 | fclose(f); |
dd43edf4 TS |
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 | } |