bpo-40280: Block more non-working syscalls in Emscripten (GH-31757)

- getgroups always fails.
- geteuid and getegid always return 0 (root), which confuse tarfile and
  tests.
- hardlinks (link, linkat) always fails.
- non-encodable file names are not supported by NODERAWFS layer.
- mark more tests with dependency on subprocess and multiprocessing.
  Mocking does not work if the module fails to import.
This commit is contained in:
Christian Heimes 2022-03-08 13:17:30 +02:00 committed by GitHub
parent 36dd7396fc
commit 5081e78efd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 37 additions and 10 deletions

View file

@ -86,11 +86,22 @@ ac_cv_func_mkfifoat=no
ac_cv_func_mknod=no
ac_cv_func_mknodat=no
# always fails with permission error
# always fails with permission or not implemented error
ac_cv_func_getgroups=no
ac_cv_func_setgroups=no
ac_cv_func_setresuid=no
ac_cv_func_setresgid=no
# Emscripten geteuid() / getegid() always return 0 (root), which breaks
# assumption in tarfile module and some tests.
ac_cv_func_getegid=no
ac_cv_func_geteuid=no
# Emscripten does not support hard links, always fails with errno 34
# "Too many links". See emscripten_syscall_stubs.c
ac_cv_func_link=no
ac_cv_func_linkat=no
# alarm signal is not delivered, may need a callback into the event loop?
ac_cv_func_alarm=no