Skip to content

Commit 5260296

Browse files
committed
Rewrite test to remove outdated dependencies
1 parent 742fe88 commit 5260296

File tree

2 files changed

+28
-72
lines changed

2 files changed

+28
-72
lines changed

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ schannel = "0.1.13"
2727
windows-sys = { version = "0.59", features = ["Win32_Foundation", "Win32_System_LibraryLoader", "Win32_Security_Cryptography"] }
2828

2929
[dev-dependencies]
30-
mio = "0.6"
31-
mio-extras = "2.0.3"
3230
anyhow = "1.0.31"
3331

3432
[workspace]

tests/multi.rs

Lines changed: 28 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![cfg(unix)]
22

3-
use std::collections::HashMap;
43
use std::io::{Cursor, Read};
54
use std::time::Duration;
65

@@ -95,8 +94,7 @@ fn upload_lots() {
9594
}
9695

9796
let mut m = Multi::new();
98-
let poll = t!(mio::Poll::new());
99-
let (tx, rx) = mio_extras::channel::channel();
97+
let (tx, rx) = std::sync::mpsc::channel();
10098
let tx2 = tx.clone();
10199
t!(m.socket_function(move |socket, events, token| {
102100
t!(tx2.send(Message::Wait(socket, events, token)));
@@ -136,84 +134,44 @@ fn upload_lots() {
136134
t!(h.upload(true));
137135
t!(h.http_headers(list));
138136

139-
t!(poll.register(&rx, mio::Token(0), mio::Ready::all(), mio::PollOpt::level()));
140-
141137
let e = t!(m.add(h));
142138

143139
let mut next_token = 1;
144-
let mut token_map = HashMap::new();
145140
let mut cur_timeout = None;
146-
let mut events = mio::Events::with_capacity(128);
147-
let mut running = true;
148-
149-
while running {
150-
let n = t!(poll.poll(&mut events, cur_timeout));
151141

152-
if n == 0 && t!(m.timeout()) == 0 {
153-
running = false;
142+
loop {
143+
match cur_timeout {
144+
Some(cur_timeout) => std::thread::sleep(cur_timeout),
145+
None => {}
154146
}
155147

156-
for event in events.iter() {
157-
while event.token() == mio::Token(0) {
158-
match rx.try_recv() {
159-
Ok(Message::Timeout(dur)) => cur_timeout = dur,
160-
Ok(Message::Wait(socket, events, token)) => {
161-
let evented = mio::unix::EventedFd(&socket);
162-
if events.remove() {
163-
token_map.remove(&token).unwrap();
164-
} else {
165-
let mut e = mio::Ready::empty();
166-
if events.input() {
167-
e |= mio::Ready::readable();
168-
}
169-
if events.output() {
170-
e |= mio::Ready::writable();
171-
}
172-
if token == 0 {
173-
let token = next_token;
174-
next_token += 1;
175-
t!(m.assign(socket, token));
176-
token_map.insert(token, socket);
177-
t!(poll.register(
178-
&evented,
179-
mio::Token(token),
180-
e,
181-
mio::PollOpt::level()
182-
));
183-
} else {
184-
t!(poll.reregister(
185-
&evented,
186-
mio::Token(token),
187-
e,
188-
mio::PollOpt::level()
189-
));
190-
}
191-
}
192-
}
193-
Err(_) => break,
148+
t!(m.timeout());
149+
150+
let message = rx.try_recv();
151+
152+
match message {
153+
Ok(Message::Timeout(dur)) => cur_timeout = dur,
154+
Ok(Message::Wait(socket, events, token)) => {
155+
if token == 0 {
156+
let token = next_token;
157+
next_token += 1;
158+
t!(m.assign(socket, token));
194159
}
195-
}
196160

197-
if event.token() == mio::Token(0) {
198-
continue;
199-
}
161+
let mut e = Events::new();
162+
if events.input() {
163+
e.input(true);
164+
}
165+
if events.output() {
166+
e.output(true);
167+
}
168+
let remaining = t!(m.action(socket, &e));
200169

201-
let token = event.token();
202-
let socket = token_map[&token.into()];
203-
let mut e = Events::new();
204-
if event.readiness().is_readable() {
205-
e.input(true);
206-
}
207-
if event.readiness().is_writable() {
208-
e.output(true);
209-
}
210-
if mio::unix::UnixReady::from(event.readiness()).is_error() {
211-
e.error(true);
212-
}
213-
let remaining = t!(m.action(socket, &e));
214-
if remaining == 0 {
215-
running = false;
170+
if remaining == 0 {
171+
break;
172+
}
216173
}
174+
Err(_) => continue,
217175
}
218176
}
219177

0 commit comments

Comments
 (0)