bpo-31904: Fix fifo test cases for VxWorks (GH-20254)

This commit is contained in:
pxinwr 2020-12-01 16:20:50 +08:00 committed by GitHub
parent cc061d0e6f
commit b2d0c66e88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 6 deletions

View File

@ -642,12 +642,17 @@ class PosixTester(unittest.TestCase):
@unittest.skipUnless(hasattr(posix, 'mkfifo'), "don't have mkfifo()") @unittest.skipUnless(hasattr(posix, 'mkfifo'), "don't have mkfifo()")
def test_mkfifo(self): def test_mkfifo(self):
os_helper.unlink(os_helper.TESTFN) if sys.platform == "vxworks":
fifo_path = os.path.join("/fifos/", os_helper.TESTFN)
else:
fifo_path = os_helper.TESTFN
os_helper.unlink(fifo_path)
self.addCleanup(os_helper.unlink, fifo_path)
try: try:
posix.mkfifo(os_helper.TESTFN, stat.S_IRUSR | stat.S_IWUSR) posix.mkfifo(fifo_path, stat.S_IRUSR | stat.S_IWUSR)
except PermissionError as e: except PermissionError as e:
self.skipTest('posix.mkfifo(): %s' % e) self.skipTest('posix.mkfifo(): %s' % e)
self.assertTrue(stat.S_ISFIFO(posix.stat(os_helper.TESTFN).st_mode)) self.assertTrue(stat.S_ISFIFO(posix.stat(fifo_path).st_mode))
@unittest.skipUnless(hasattr(posix, 'mknod') and hasattr(stat, 'S_IFIFO'), @unittest.skipUnless(hasattr(posix, 'mknod') and hasattr(stat, 'S_IFIFO'),
"don't have mknod()/S_IFIFO") "don't have mknod()/S_IFIFO")

View File

@ -2,6 +2,7 @@ import unittest
import os import os
import socket import socket
import sys import sys
from test.support import os_helper
from test.support import socket_helper from test.support import socket_helper
from test.support.import_helper import import_fresh_module from test.support.import_helper import import_fresh_module
from test.support.os_helper import TESTFN from test.support.os_helper import TESTFN
@ -173,11 +174,16 @@ class TestFilemode:
@unittest.skipUnless(hasattr(os, 'mkfifo'), 'os.mkfifo not available') @unittest.skipUnless(hasattr(os, 'mkfifo'), 'os.mkfifo not available')
def test_fifo(self): def test_fifo(self):
if sys.platform == "vxworks":
fifo_path = os.path.join("/fifos/", TESTFN)
else:
fifo_path = TESTFN
self.addCleanup(os_helper.unlink, fifo_path)
try: try:
os.mkfifo(TESTFN, 0o700) os.mkfifo(fifo_path, 0o700)
except PermissionError as e: except PermissionError as e:
self.skipTest('os.mkfifo(): %s' % e) self.skipTest('os.mkfifo(): %s' % e)
st_mode, modestr = self.get_mode() st_mode, modestr = self.get_mode(fifo_path)
self.assertEqual(modestr, 'prwx------') self.assertEqual(modestr, 'prwx------')
self.assertS_IS("FIFO", st_mode) self.assertS_IS("FIFO", st_mode)

View File

@ -0,0 +1 @@
Fix fifo test cases for VxWorks RTOS.