|
|
1.1 root 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 ();
1.1.1.2 ! root 30: fclose(f);
1.1 root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.