Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcf288e3

Browse files
authored
gh-127146: Update test skips for Emscripten 4.0.2 (#129474)
Updates test skips to reflect capabilities of Emscripten 4.0.2.
1 parent23cda58 commitcf288e3

File tree

5 files changed

+61
-68
lines changed

5 files changed

+61
-68
lines changed

‎Lib/test/test_genericpath.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ def test_exists(self):
161161
self.assertIs(self.pathmodule.lexists(path=filename),True)
162162

163163
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
164-
@unittest.skipIf(is_emscripten,"Fixed in next Emscripten release after 4.0.1")
165164
deftest_exists_fd(self):
166165
r,w=os.pipe()
167166
try:

‎Lib/test/test_io.py

Lines changed: 57 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -445,9 +445,6 @@ def test_invalid_operations(self):
445445
self.assertRaises(exc,fp.seek,1,self.SEEK_CUR)
446446
self.assertRaises(exc,fp.seek,-1,self.SEEK_END)
447447

448-
@unittest.skipIf(
449-
support.is_emscripten,"fstat() of a pipe fd is not supported"
450-
)
451448
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
452449
deftest_optional_abilities(self):
453450
# Test for OSError when optional APIs are not supported
@@ -501,57 +498,65 @@ class UnseekableWriter(self.MockUnseekableIO):
501498
(text_reader,"r"), (text_writer,"w"),
502499
(self.BytesIO,"rws"), (self.StringIO,"rws"),
503500
)
504-
for [test,abilities]intests:
505-
withself.subTest(test),test()asobj:
506-
readable="r"inabilities
507-
self.assertEqual(obj.readable(),readable)
508-
writable="w"inabilities
509-
self.assertEqual(obj.writable(),writable)
510-
511-
ifisinstance(obj,self.TextIOBase):
512-
data="3"
513-
elifisinstance(obj, (self.BufferedIOBase,self.RawIOBase)):
514-
data=b"3"
515-
else:
516-
self.fail("Unknown base class")
517501

518-
if"f"inabilities:
519-
obj.fileno()
520-
else:
521-
self.assertRaises(OSError,obj.fileno)
502+
defdo_test(test,obj,abilities):
503+
readable="r"inabilities
504+
self.assertEqual(obj.readable(),readable)
505+
writable="w"inabilities
506+
self.assertEqual(obj.writable(),writable)
522507

523-
ifreadable:
524-
obj.read(1)
525-
obj.read()
526-
else:
527-
self.assertRaises(OSError,obj.read,1)
528-
self.assertRaises(OSError,obj.read)
508+
ifisinstance(obj,self.TextIOBase):
509+
data="3"
510+
elifisinstance(obj, (self.BufferedIOBase,self.RawIOBase)):
511+
data=b"3"
512+
else:
513+
self.fail("Unknown base class")
529514

530-
ifwritable:
531-
obj.write(data)
532-
else:
533-
self.assertRaises(OSError,obj.write,data)
534-
535-
ifsys.platform.startswith("win")andtestin (
536-
pipe_reader,pipe_writer):
537-
# Pipes seem to appear as seekable on Windows
538-
continue
539-
seekable="s"inabilities
540-
self.assertEqual(obj.seekable(),seekable)
541-
542-
ifseekable:
543-
obj.tell()
544-
obj.seek(0)
545-
else:
546-
self.assertRaises(OSError,obj.tell)
547-
self.assertRaises(OSError,obj.seek,0)
515+
if"f"inabilities:
516+
obj.fileno()
517+
else:
518+
self.assertRaises(OSError,obj.fileno)
519+
520+
ifreadable:
521+
obj.read(1)
522+
obj.read()
523+
else:
524+
self.assertRaises(OSError,obj.read,1)
525+
self.assertRaises(OSError,obj.read)
526+
527+
ifwritable:
528+
obj.write(data)
529+
else:
530+
self.assertRaises(OSError,obj.write,data)
531+
532+
ifsys.platform.startswith("win")andtestin (
533+
pipe_reader,pipe_writer):
534+
# Pipes seem to appear as seekable on Windows
535+
return
536+
seekable="s"inabilities
537+
self.assertEqual(obj.seekable(),seekable)
538+
539+
ifseekable:
540+
obj.tell()
541+
obj.seek(0)
542+
else:
543+
self.assertRaises(OSError,obj.tell)
544+
self.assertRaises(OSError,obj.seek,0)
545+
546+
ifwritableandseekable:
547+
obj.truncate()
548+
obj.truncate(0)
549+
else:
550+
self.assertRaises(OSError,obj.truncate)
551+
self.assertRaises(OSError,obj.truncate,0)
552+
553+
for [test,abilities]intests:
554+
withself.subTest(test):
555+
iftest==pipe_writerandnotthreading_helper.can_start_thread:
556+
skipTest()
557+
withtest()asobj:
558+
do_test(test,obj,abilities)
548559

549-
ifwritableandseekable:
550-
obj.truncate()
551-
obj.truncate(0)
552-
else:
553-
self.assertRaises(OSError,obj.truncate)
554-
self.assertRaises(OSError,obj.truncate,0)
555560

556561
deftest_open_handles_NUL_chars(self):
557562
fn_with_NUL='foo\0bar'
@@ -3927,7 +3932,6 @@ def test_issue35928(self):
39273932
self.assertEqual(res+f.readline(),'foo\nbar\n')
39283933

39293934
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
3930-
@unittest.skipIf(support.is_emscripten,"Fixed in next Emscripten release after 4.0.1")
39313935
deftest_read_non_blocking(self):
39323936
importos
39333937
r,w=os.pipe()
@@ -4242,9 +4246,6 @@ def test_removed_u_mode(self):
42424246
self.open(os_helper.TESTFN,mode)
42434247
self.assertIn('invalid mode',str(cm.exception))
42444248

4245-
@unittest.skipIf(
4246-
support.is_emscripten,"fstat() of a pipe fd is not supported"
4247-
)
42484249
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
42494250
deftest_open_pipe_with_append(self):
42504251
# bpo-27805: Ignore ESPIPE from lseek() in open().
@@ -4413,15 +4414,11 @@ def test_pickling(self):
44134414
withself.assertRaisesRegex(TypeError,msg):
44144415
pickle.dumps(f,protocol)
44154416

4416-
@unittest.skipIf(
4417-
support.is_emscripten,"fstat() of a pipe fd is not supported"
4418-
)
4417+
@unittest.skipIf(support.is_emscripten,"Emscripten corrupts memory when writing to nonblocking fd")
44194418
deftest_nonblock_pipe_write_bigbuf(self):
44204419
self._test_nonblock_pipe_write(16*1024)
44214420

4422-
@unittest.skipIf(
4423-
support.is_emscripten,"fstat() of a pipe fd is not supported"
4424-
)
4421+
@unittest.skipIf(support.is_emscripten,"Emscripten corrupts memory when writing to nonblocking fd")
44254422
deftest_nonblock_pipe_write_smallbuf(self):
44264423
self._test_nonblock_pipe_write(1024)
44274424

‎Lib/test/test_ntpath.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -940,7 +940,6 @@ def check_error(paths, expected):
940940
self.assertRaises(TypeError,ntpath.commonpath, ['C:\\Foo',b'Foo\\Baz'])
941941
self.assertRaises(TypeError,ntpath.commonpath, ['Foo',b'C:\\Foo\\Baz'])
942942

943-
@unittest.skipIf(is_emscripten,"Fixed in next Emscripten release after 4.0.1")
944943
deftest_sameopenfile(self):
945944
withTemporaryFile()astf1,TemporaryFile()astf2:
946945
# Make sure the same file is really the same

‎Lib/test/test_signal.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,6 @@ def test_invalid_socket(self):
253253
self.assertRaises((ValueError,OSError),
254254
signal.set_wakeup_fd,fd)
255255

256-
@unittest.skipIf(support.is_emscripten,"Fixed in next Emscripten release after 4.0.1")
257256
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
258257
deftest_set_wakeup_fd_result(self):
259258
r1,w1=os.pipe()
@@ -272,7 +271,6 @@ def test_set_wakeup_fd_result(self):
272271
self.assertEqual(signal.set_wakeup_fd(-1),w2)
273272
self.assertEqual(signal.set_wakeup_fd(-1),-1)
274273

275-
@unittest.skipIf(support.is_emscripten,"Fixed in next Emscripten release after 4.0.1")
276274
@unittest.skipUnless(support.has_socket_support,"needs working sockets.")
277275
deftest_set_wakeup_fd_socket_result(self):
278276
sock1=socket.socket()
@@ -293,7 +291,6 @@ def test_set_wakeup_fd_socket_result(self):
293291
# On Windows, files are always blocking and Windows does not provide a
294292
# function to test if a socket is in non-blocking mode.
295293
@unittest.skipIf(sys.platform=="win32","tests specific to POSIX")
296-
@unittest.skipIf(support.is_emscripten,"Fixed in next Emscripten release after 4.0.1")
297294
@unittest.skipUnless(hasattr(os,"pipe"),"requires os.pipe()")
298295
deftest_set_wakeup_fd_blocking(self):
299296
rfd,wfd=os.pipe()

‎Tools/wasm/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ https://github.com/psf/webassembly for more information.
2424
To cross compile to the``wasm32-emscripten`` platform you need
2525
[the Emscripten compiler toolchain](https://emscripten.org/),
2626
a Python interpreter, and an installation of Node version 18 or newer.
27-
Emscripten version 3.1.73 or newer is recommended. All commands below are
28-
relative to a checkout of the Python repository.
27+
Emscripten version 4.0.2 is recommended; newer versions may also work, but all
28+
official testing is performed with that version. All commands below are relative
29+
to a checkout of the Python repository.
2930

3031
####Install[the Emscripten compiler toolchain](https://emscripten.org/docs/getting_started/downloads.html)
3132

@@ -266,7 +267,7 @@ if os.name == "posix":
266267
posix.uname_result(
267268
sysname='Emscripten',
268269
nodename='emscripten',
269-
release='3.1.19',
270+
release='4.0.2',
270271
version='#1',
271272
machine='wasm32'
272273
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp