disable python ioctl test for gh-actions

This commit is contained in:
Theta Nil 2022-06-23 09:07:10 -04:00
parent 2b54f1bcf6
commit 026f01b50b

View file

@ -3,17 +3,20 @@ import unittest
from test.support import import_module, get_attribute
import os, struct
fcntl = import_module('fcntl')
termios = import_module('termios')
get_attribute(termios, 'TIOCGPGRP') #Can't run tests without this feature
fcntl = import_module("fcntl")
termios = import_module("termios")
get_attribute(termios, "TIOCGPGRP") # Can't run tests without this feature
if __name__ == 'PYOBJ.COM':
if __name__ == "PYOBJ.COM":
import fcntl
import termios
try:
tty = open("/dev/tty", "rb")
except OSError:
# todo: gh-runners fail on skiptest cosmo issue #431
import sys
sys.exit()
raise unittest.SkipTest("Unable to open /dev/tty")
else:
# Skip if another process is in foreground
@ -21,8 +24,9 @@ else:
tty.close()
rpgrp = struct.unpack("i", r)[0]
if rpgrp not in (os.getpgrp(), os.getsid(0)):
raise unittest.SkipTest("Neither the process group nor the session "
"are attached to /dev/tty")
raise unittest.SkipTest(
"Neither the process group nor the session " "are attached to /dev/tty"
)
del tty, r, rpgrp
try:
@ -30,6 +34,7 @@ try:
except ImportError:
pty = None
class IoctlTests(unittest.TestCase):
def test_ioctl(self):
# If this process has been put into the background, TIOCGPGRP returns
@ -41,7 +46,7 @@ class IoctlTests(unittest.TestCase):
self.assertIn(rpgrp, ids)
def _check_ioctl_mutate_len(self, nbytes=None):
buf = array.array('i')
buf = array.array("i")
intsize = buf.itemsize
ids = (os.getpgrp(), os.getsid(0))
# A fill value unlikely to be in `ids`
@ -71,18 +76,19 @@ class IoctlTests(unittest.TestCase):
self._check_ioctl_mutate_len(2048)
def test_ioctl_signed_unsigned_code_param(self):
if not pty or not hasattr(os, 'openpty'):
raise unittest.SkipTest('pty module required')
if not pty or not hasattr(os, "openpty"):
raise unittest.SkipTest("pty module required")
mfd, sfd = pty.openpty()
try:
if termios.TIOCSWINSZ < 0:
set_winsz_opcode_maybe_neg = termios.TIOCSWINSZ
set_winsz_opcode_pos = termios.TIOCSWINSZ & 0xffffffff
set_winsz_opcode_pos = termios.TIOCSWINSZ & 0xFFFFFFFF
else:
set_winsz_opcode_pos = termios.TIOCSWINSZ
set_winsz_opcode_maybe_neg, = struct.unpack("i",
struct.pack("I", termios.TIOCSWINSZ))
our_winsz = struct.pack("HHHH",80,25,0,0)
(set_winsz_opcode_maybe_neg,) = struct.unpack(
"i", struct.pack("I", termios.TIOCSWINSZ)
)
our_winsz = struct.pack("HHHH", 80, 25, 0, 0)
# test both with a positive and potentially negative ioctl code
new_winsz = fcntl.ioctl(mfd, set_winsz_opcode_pos, our_winsz)
new_winsz = fcntl.ioctl(mfd, set_winsz_opcode_maybe_neg, our_winsz)