Skip to content

Commit 7efcbf9

Browse files
Skip tcflow() tests on non-Linux.
1 parent 4698234 commit 7efcbf9

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

Lib/test/test_ioctl.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,16 @@ def writer():
182182
write_finished.set()
183183

184184
with threading_helper.start_threads([threading.Thread(target=writer)]):
185-
self.assertEqual(os.read(rfd, 1024), b'abc')
186-
fcntl.ioctl(wfd, termios.TCXONC, termios.TCOOFF)
187-
write_suspended.set()
188-
self.assertFalse(write_finished.wait(0.5))
189-
fcntl.ioctl(wfd, termios.TCXONC, termios.TCOON)
190-
self.assertTrue(write_finished.wait(0.5))
185+
self.assertEqual(os.read(rfd, 3), b'abc')
186+
try:
187+
fcntl.ioctl(wfd, termios.TCXONC, termios.TCOOFF)
188+
write_suspended.set()
189+
self.assertFalse(write_finished.wait(0.5),
190+
'output was not suspended')
191+
finally:
192+
fcntl.ioctl(wfd, termios.TCXONC, termios.TCOON)
193+
self.assertTrue(write_finished.wait(0.5),
194+
'output was not resumed')
191195
self.assertEqual(os.read(rfd, 1024), b'def')
192196

193197
def test_ioctl_set_window_size(self):

Lib/test/test_termios.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def test_tcflow_errors(self):
190190
self.assertRaises(TypeError, termios.tcflow, object(), termios.TCOON)
191191
self.assertRaises(TypeError, termios.tcflow, self.fd)
192192

193+
@unittest.skipUnless(sys.platform == 'linux', 'only works on Linux')
193194
def test_tcflow_suspend_and_resume_output(self):
194195
wfd = self.fd
195196
rfd = self.master_fd
@@ -203,12 +204,16 @@ def writer():
203204
write_finished.set()
204205

205206
with threading_helper.start_threads([threading.Thread(target=writer)]):
206-
self.assertEqual(os.read(rfd, 1024), b'abc')
207-
termios.tcflow(wfd, termios.TCOOFF)
208-
write_suspended.set()
209-
self.assertFalse(write_finished.wait(0.5))
210-
termios.tcflow(wfd, termios.TCOON)
211-
self.assertTrue(write_finished.wait(0.5))
207+
self.assertEqual(os.read(rfd, 3), b'abc')
208+
try:
209+
termios.tcflow(wfd, termios.TCOOFF)
210+
write_suspended.set()
211+
self.assertFalse(write_finished.wait(0.5),
212+
'output was not suspended')
213+
finally:
214+
termios.tcflow(wfd, termios.TCOON)
215+
self.assertTrue(write_finished.wait(0.5),
216+
'output was not resumed')
212217
self.assertEqual(os.read(rfd, 1024), b'def')
213218

214219
def test_tcgetwinsize(self):

0 commit comments

Comments
 (0)