/* Check that --sysroot is applied to open(2). #sim: --sysroot=@exedir@ We assume, with EXE being the name of the executable: - The simulator executes with cwd the same directory where the executable is located (so argv[0] contains a plain filename without directory components). - There's no /EXE on the host file system. */ #include #include #include #include int main (int argc, char *argv[]) { char *fnam = argv[0]; FILE *f; if (argv[0][0] != '/') { fnam = malloc (strlen (argv[0]) + 2); if (fnam == NULL) abort (); strcpy (fnam, "/"); strcat (fnam, argv[0]); } f = fopen (fnam, "rb"); if (f == NULL) abort (); close (f); /* Cover another execution path. */ if (fopen ("/nonexistent", "rb") != NULL || errno != ENOENT) abort (); printf ("pass\n"); return 0; }