@@ -190,6 +190,7 @@ def test_tcflow_errors(self):
190
190
self .assertRaises (TypeError , termios .tcflow , object (), termios .TCOON )
191
191
self .assertRaises (TypeError , termios .tcflow , self .fd )
192
192
193
+ @unittest .skipUnless (sys .platform == 'linux' , 'only works on Linux' )
193
194
def test_tcflow_suspend_and_resume_output (self ):
194
195
wfd = self .fd
195
196
rfd = self .master_fd
@@ -203,12 +204,16 @@ def writer():
203
204
write_finished .set ()
204
205
205
206
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' )
212
217
self .assertEqual (os .read (rfd , 1024 ), b'def' )
213
218
214
219
def test_tcgetwinsize (self ):
0 commit comments