xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/cris/c/openpf1.c (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1 /* Check that --sysroot is applied to open(2).
2 #sim: --sysroot=$pwd
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 (also argv[0] contains a plain filename without directory
7      components -or- argv[0] contains the full non-sysroot path to EXE).
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>
main(int argc,char * argv[])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   else
27     fnam = strrchr (argv[0], '/');
28 
29   f = fopen (fnam, "rb");
30   if (f == NULL)
31     abort ();
32   fclose (f);
33 
34   /* Cover another execution path.  */
35   if (fopen ("/nonexistent", "rb") != NULL
36       || errno != ENOENT)
37     abort ();
38   printf ("pass\n");
39   return 0;
40 }
41