Skip to content

Commit f352b81

Browse files
BerrysoftThomasdezeeuw
authored andcommitted
Enable ignored UDS tests
1 parent 97662c0 commit f352b81

File tree

2 files changed

+43
-4
lines changed

2 files changed

+43
-4
lines changed

tests/unix_listener.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ fn unix_listener_register() {
8989
}
9090

9191
#[test]
92-
#[cfg_attr(target_os = "cygwin", ignore = "Cygwin blocks on connect")]
9392
fn unix_listener_reregister() {
9493
let (mut poll, mut events) = init_with_poll();
9594
let barrier = Arc::new(Barrier::new(2));
@@ -111,13 +110,15 @@ fn unix_listener_reregister() {
111110
&mut events,
112111
vec![ExpectEvent::new(TOKEN_1, Interest::READABLE)],
113112
);
113+
// Complete handshake to unblock the client thread.
114+
#[cfg(target_os = "cygwin")]
115+
listener.accept().unwrap();
114116

115117
barrier.wait();
116118
handle.join().unwrap();
117119
}
118120

119121
#[test]
120-
#[cfg_attr(target_os = "cygwin", ignore = "Cygwin blocks on connect")]
121122
fn unix_listener_deregister() {
122123
let (mut poll, mut events) = init_with_poll();
123124
let barrier = Arc::new(Barrier::new(2));
@@ -132,6 +133,9 @@ fn unix_listener_deregister() {
132133

133134
poll.registry().deregister(&mut listener).unwrap();
134135
expect_no_events(&mut poll, &mut events);
136+
// Complete handshake to unblock the client thread.
137+
#[cfg(target_os = "cygwin")]
138+
listener.accept().unwrap();
135139

136140
barrier.wait();
137141
handle.join().unwrap();

tests/unix_stream.rs

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,31 @@ fn unix_stream_pair() {
183183
target_os = "hurd",
184184
ignore = "getting pathname isn't supported on GNU/Hurd"
185185
)]
186-
#[cfg_attr(target_os = "cygwin", ignore = "nonblocking connect doesn't handshake")]
187186
fn unix_stream_peer_addr() {
188187
init();
189188
let (handle, expected_addr) = new_echo_listener(1, "unix_stream_peer_addr");
190189
let expected_path = expected_addr.as_pathname().expect("failed to get pathname");
191190

192191
let stream = UnixStream::connect(expected_path).unwrap();
192+
// Complete handshake to unblock the server thread.
193+
#[cfg(target_os = "cygwin")]
194+
let stream = {
195+
let mut stream = stream;
196+
let (mut poll, mut events) = init_with_poll();
197+
poll.registry()
198+
.register(
199+
&mut stream,
200+
TOKEN_1,
201+
Interest::READABLE.add(Interest::WRITABLE),
202+
)
203+
.unwrap();
204+
expect_events(
205+
&mut poll,
206+
&mut events,
207+
vec![ExpectEvent::new(TOKEN_1, Interest::WRITABLE)],
208+
);
209+
stream
210+
};
193211

194212
assert_eq!(
195213
stream.peer_addr().unwrap().as_pathname().unwrap(),
@@ -485,13 +503,30 @@ fn unix_stream_reregister() {
485503
target_os = "hurd",
486504
ignore = "getting pathname isn't supported on GNU/Hurd"
487505
)]
488-
#[cfg_attr(target_os = "cygwin", ignore = "nonblocking connect doesn't handshake")]
489506
fn unix_stream_deregister() {
490507
let (mut poll, mut events) = init_with_poll();
491508
let (handle, remote_addr) = new_echo_listener(1, "unix_stream_deregister");
492509
let path = remote_addr.as_pathname().expect("failed to get pathname");
493510

494511
let mut stream = UnixStream::connect(path).unwrap();
512+
// Complete handshake to unblock the server thread.
513+
#[cfg(target_os = "cygwin")]
514+
{
515+
let (mut poll, mut events) = init_with_poll();
516+
poll.registry()
517+
.register(
518+
&mut stream,
519+
TOKEN_1,
520+
Interest::READABLE.add(Interest::WRITABLE),
521+
)
522+
.unwrap();
523+
expect_events(
524+
&mut poll,
525+
&mut events,
526+
vec![ExpectEvent::new(TOKEN_1, Interest::WRITABLE)],
527+
);
528+
poll.registry().deregister(&mut stream).unwrap();
529+
}
495530
poll.registry()
496531
.register(&mut stream, TOKEN_1, Interest::WRITABLE)
497532
.unwrap();

0 commit comments

Comments
 (0)