xref: /openbmc/qemu/tests/tcg/cris/libc/check_openpf1.c (revision ffe98631)
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   fclose(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 }
39