]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-40280: Enable most file-at() and nanosleep APIs again (GH-32238)
authorChristian Heimes <christian@python.org>
Sat, 2 Apr 2022 08:13:44 +0000 (11:13 +0300)
committerGitHub <noreply@github.com>
Sat, 2 Apr 2022 08:13:44 +0000 (10:13 +0200)
Lib/test/test_os.py
Tools/wasm/config.site-wasm32-emscripten

index 9a60bf5f7fdd5ca0a9a414b5d844704a8e372f35..5f73af81d456024194f497a7ed2c276f4a9ec3ad 100644 (file)
@@ -1334,7 +1334,9 @@ class WalkTests(unittest.TestCase):
         else:
             self.sub2_tree = (sub2_path, ["SUB21"], ["tmp3"])
 
-        os.chmod(sub21_path, 0)
+        if not support.is_emscripten:
+            # Emscripten fails with inaccessible directory
+            os.chmod(sub21_path, 0)
         try:
             os.listdir(sub21_path)
         except PermissionError:
@@ -1517,6 +1519,9 @@ class FwalkTests(WalkTests):
                 # check that listdir() returns consistent information
                 self.assertEqual(set(os.listdir(rootfd)), set(dirs) | set(files))
 
+    @unittest.skipIf(
+        support.is_emscripten, "Cannot dup stdout on Emscripten"
+    )
     def test_fd_leak(self):
         # Since we're opening a lot of FDs, we must be careful to avoid leaks:
         # we both check that calling fwalk() a large number of times doesn't
@@ -2935,6 +2940,9 @@ class DeviceEncodingTests(unittest.TestCase):
     @unittest.skipUnless(os.isatty(0) and not win32_is_iot() and (sys.platform.startswith('win') or
             (hasattr(locale, 'nl_langinfo') and hasattr(locale, 'CODESET'))),
             'test requires a tty and either Windows or nl_langinfo(CODESET)')
+    @unittest.skipIf(
+        support.is_emscripten, "Cannot get encoding of stdin on Emscripten"
+    )
     def test_device_encoding(self):
         encoding = os.device_encoding(0)
         self.assertIsNotNone(encoding)
index 7f2df3a47723fc00e80f188194d989150afd74be..60ede49eb374575f9173bee8f70b3df941ea2118 100644 (file)
@@ -27,11 +27,6 @@ ac_cv_func_prlimit=no
 # unsupported syscall, https://github.com/emscripten-core/emscripten/issues/13393
 ac_cv_func_shutdown=no
 
-# clock_nanosleep() causes time.sleep() to sleep forever.
-# nanosleep() works correctly
-ac_cv_func_clock_nanosleep=no
-ac_cv_lib_rt_clock_nanosleep=no
-
 # The rest is based on pyodide
 # https://github.com/pyodide/pyodide/blob/main/cpython/pyconfig.undefs.h
 
@@ -39,20 +34,11 @@ ac_cv_func_epoll_create=no
 ac_cv_func_epoll_create1=no
 ac_cv_header_linux_vm_sockets_h=no
 ac_cv_func_socketpair=no
-ac_cv_func_utimensat=no
 ac_cv_func_sigaction=no
 
-# Untested or failing syscalls in emscripten
-ac_cv_func_openat=no
-ac_cv_func_mkdirat=no
-ac_cv_func_faccessat=no
-ac_cv_func_fchownat=no
-ac_cv_func_renameat=no
-ac_cv_func_linkat=no
+# symlinkat is implemented, but fails
 ac_cv_func_symlinkat=no
-ac_cv_func_readlinkat=no
-ac_cv_func_fchmodat=no
-ac_cv_func_dup3=no
+
 # lchmod/lchown are implemented, but fail with ENOTSUP.
 ac_cv_func_lchmod=no
 ac_cv_func_lchown=no