mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
e1e1ae6e9b
The tests assume that the cwd is the objdir directory and write its intermediates to there all the time. When using runtest's --objdir setting though, this puts the files in the wrong place. This isn't a big problem currently as we never change --objdir, but in order to support parallel test execution, we're going to start setting that option, so clean up the code ahead of time. We also have to tweak some of the cris tests which were making assumptions about the argv[0] value.
39 lines
906 B
C
39 lines
906 B
C
/* Check that --sysroot is applied to open(2).
|
|
#sim: --sysroot=$pwd
|
|
|
|
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 <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
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, basename (argv[0]));
|
|
}
|
|
|
|
f = fopen (fnam, "rb");
|
|
if (f == NULL)
|
|
abort ();
|
|
fclose (f);
|
|
|
|
/* Cover another execution path. */
|
|
if (fopen ("/nonexistent", "rb") != NULL
|
|
|| errno != ENOENT)
|
|
abort ();
|
|
printf ("pass\n");
|
|
return 0;
|
|
}
|