diff options
author | Alex Bennée | 2018-12-07 11:28:31 +0100 |
---|---|---|
committer | Alex Bennée | 2019-03-12 18:05:21 +0100 |
commit | d4f6e58fcbab1fa2df123e3849dd95f30400a896 (patch) | |
tree | dc63da617d6ddf108554dd379cc56a7b9014d080 /tests/tcg/cris/libc/check_openpf1.c | |
parent | tests/tcg/cris: cleanup sys.c (diff) | |
download | qemu-d4f6e58fcbab1fa2df123e3849dd95f30400a896.tar.gz qemu-d4f6e58fcbab1fa2df123e3849dd95f30400a896.tar.xz qemu-d4f6e58fcbab1fa2df123e3849dd95f30400a896.zip |
tests/tcg: split cris tests into bare and libc directories
Bare tests are standalone assembly tests that don't require linking to
any libc and hence can be built with kernel only compilers. The libc
tests need a compiler capable of building properly linked userspace
binaries. As we don't have such a cross compiler at the moment we
won't be building those tests.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Diffstat (limited to 'tests/tcg/cris/libc/check_openpf1.c')
-rw-r--r-- | tests/tcg/cris/libc/check_openpf1.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/tcg/cris/libc/check_openpf1.c b/tests/tcg/cris/libc/check_openpf1.c new file mode 100644 index 0000000000..251d26eec2 --- /dev/null +++ b/tests/tcg/cris/libc/check_openpf1.c @@ -0,0 +1,38 @@ +/* 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 <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, 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; +} |