diff options
Diffstat (limited to 'tests/unistd/misc.c')
-rw-r--r-- | tests/unistd/misc.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/tests/unistd/misc.c b/tests/unistd/misc.c index 5b0d63d2..2ca5b390 100644 --- a/tests/unistd/misc.c +++ b/tests/unistd/misc.c @@ -2,9 +2,17 @@ #include <errno.h> #include <unistd.h> #include <fcntl.h> +#include <emscripten.h> int main() { - int f = open("/", O_RDONLY); + EM_ASM( + FS.mkdir('working'); +#if NODEFS + FS.mount(NODEFS, { root: '.' }, 'working'); +#endif + ); + + int f = open("working", O_RDONLY); sync(); @@ -36,7 +44,7 @@ int main() { printf(", errno: %d\n", errno); errno = 0; - printf("link: %d", link("/here", "/there")); + printf("link: %d", link("working/here", "working/there")); printf(", errno: %d\n", errno); errno = 0; @@ -65,10 +73,10 @@ int main() { char* exec_argv[] = {"arg", 0}; char* exec_env[] = {"a=b", 0}; - printf("execl: %d", execl("/program", "arg", 0)); + printf("execl: %d", execl("working/program", "arg", 0)); printf(", errno: %d\n", errno); errno = 0; - printf("execle: %d", execle("/program", "arg", 0, exec_env)); + printf("execle: %d", execle("working/program", "arg", 0, exec_env)); printf(", errno: %d\n", errno); errno = 0; printf("execlp: %d", execlp("program", "arg", 0)); @@ -84,16 +92,16 @@ int main() { printf(", errno: %d\n", errno); errno = 0; - printf("chown(good): %d", chown("/", 123, 456)); + printf("chown(good): %d", chown("working", 123, 456)); printf(", errno: %d\n", errno); errno = 0; - printf("chown(bad): %d", chown("/noexist", 123, 456)); + printf("chown(bad): %d", chown("working/noexist", 123, 456)); printf(", errno: %d\n", errno); errno = 0; - printf("lchown(good): %d", lchown("/", 123, 456)); + printf("lchown(good): %d", lchown("working", 123, 456)); printf(", errno: %d\n", errno); errno = 0; - printf("lchown(bad): %d", lchown("/noexist", 123, 456)); + printf("lchown(bad): %d", lchown("working/noexist", 123, 456)); printf(", errno: %d\n", errno); errno = 0; printf("fchown(good): %d", fchown(f, 123, 456)); |