Skip to content

Commit 92f1254

Browse files
author
Jethro Beekman
committed
Set thread names in tests
1 parent 2a962b0 commit 92f1254

File tree

5 files changed

+82
-38
lines changed

5 files changed

+82
-38
lines changed

mbedtls/tests/client_server.rs

+29-13
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ where
252252

253253
#[cfg(unix)]
254254
mod test {
255-
use std::thread;
255+
use crate::support::thread_spawn_named;
256256

257257
#[test]
258258
fn client_server_test() {
@@ -348,17 +348,25 @@ mod test {
348348
// TLS tests using certificates
349349

350350
let (c, s) = crate::support::net::create_tcp_pair().unwrap();
351-
let c = thread::spawn(move || super::client(c, min_c, max_c, exp_ver, false).unwrap());
352-
let s = thread::spawn(move || super::server(s, min_s, max_s, exp_ver, false).unwrap());
351+
let c = thread_spawn_named("client_tls_cert", move || {
352+
super::client(c, min_c, max_c, exp_ver, false).unwrap()
353+
});
354+
let s = thread_spawn_named("server_tls_cert", move || {
355+
super::server(s, min_s, max_s, exp_ver, false).unwrap()
356+
});
353357

354358
c.join().unwrap();
355359
s.join().unwrap();
356360

357361
// TLS tests using PSK
358362

359363
let (c, s) = crate::support::net::create_tcp_pair().unwrap();
360-
let c = thread::spawn(move || super::client(c, min_c, max_c, exp_ver, true).unwrap());
361-
let s = thread::spawn(move || super::server(s, min_s, max_s, exp_ver, true).unwrap());
364+
let c = thread_spawn_named("client_tls_psk", move || {
365+
super::client(c, min_c, max_c, exp_ver, true).unwrap()
366+
});
367+
let s = thread_spawn_named("server_tls_psk", move || {
368+
super::server(s, min_s, max_s, exp_ver, true).unwrap()
369+
});
362370

363371
c.join().unwrap();
364372
s.join().unwrap();
@@ -372,10 +380,14 @@ mod test {
372380

373381
let s = UdpSocket::bind("127.0.0.1:12340").expect("could not bind UdpSocket");
374382
let s = ConnectedUdpSocket::connect(s, "127.0.0.1:12341").expect("could not connect UdpSocket");
375-
let s = thread::spawn(move || super::server(s, min_s, max_s, exp_ver, false).unwrap());
383+
let s = thread_spawn_named("server_dtls_cert", move || {
384+
super::server(s, min_s, max_s, exp_ver, false).unwrap()
385+
});
376386
let c = UdpSocket::bind("127.0.0.1:12341").expect("could not bind UdpSocket");
377387
let c = ConnectedUdpSocket::connect(c, "127.0.0.1:12340").expect("could not connect UdpSocket");
378-
let c = thread::spawn(move || super::client(c, min_c, max_c, exp_ver, false).unwrap());
388+
let c = thread_spawn_named("client_dtls_cert", move || {
389+
super::client(c, min_c, max_c, exp_ver, false).unwrap()
390+
});
379391

380392
s.join().unwrap();
381393
c.join().unwrap();
@@ -389,10 +401,14 @@ mod test {
389401

390402
let s = UdpSocket::bind("127.0.0.1:12340").expect("could not bind UdpSocket");
391403
let s = ConnectedUdpSocket::connect(s, "127.0.0.1:12341").expect("could not connect UdpSocket");
392-
let s = thread::spawn(move || super::server(s, min_s, max_s, exp_ver, true).unwrap());
404+
let s = thread_spawn_named("client_dtls_psk", move || {
405+
super::server(s, min_s, max_s, exp_ver, true).unwrap()
406+
});
393407
let c = UdpSocket::bind("127.0.0.1:12341").expect("could not bind UdpSocket");
394408
let c = ConnectedUdpSocket::connect(c, "127.0.0.1:12340").expect("could not connect UdpSocket");
395-
let c = thread::spawn(move || super::client(c, min_c, max_c, exp_ver, true).unwrap());
409+
let c = thread_spawn_named("client_dtls_psk", move || {
410+
super::client(c, min_c, max_c, exp_ver, true).unwrap()
411+
});
396412

397413
s.join().unwrap();
398414
c.join().unwrap();
@@ -411,14 +427,14 @@ mod test {
411427
let data_to_write = expected_data.clone();
412428
assert_eq!(expected_data, data_to_write);
413429
let (c, s) = crate::support::net::create_tcp_pair().unwrap();
414-
let c = thread::spawn(move || {
430+
let c = thread_spawn_named("client", move || {
415431
super::with_client(c, move |mut session| {
416432
let ret = session.write_all(&data_to_write);
417433
assert!(ret.is_ok());
418434
})
419435
});
420436

421-
let s = thread::spawn(move || {
437+
let s = thread_spawn_named("server", move || {
422438
super::with_server(s, move |mut session| {
423439
let mut buf = vec![0; buffer_size];
424440
match session.read_exact(&mut buf) {
@@ -450,7 +466,7 @@ mod test {
450466
let data_to_write = expected_data.clone();
451467
assert_eq!(expected_data, data_to_write);
452468
let (c, s) = crate::support::net::create_tcp_pair().unwrap();
453-
let c = thread::spawn(move || {
469+
let c = thread_spawn_named("client", move || {
454470
super::with_client(c, move |mut session| {
455471
let ret = session.write_all(&data_to_write);
456472
assert!(ret.is_err());
@@ -460,7 +476,7 @@ mod test {
460476
})
461477
});
462478

463-
let s = thread::spawn(move || {
479+
let s = thread_spawn_named("server", move || {
464480
super::with_server(s, move |mut session| {
465481
let mut buf = vec![0; buffer_size];
466482
match session.read_exact(&mut buf) {

mbedtls/tests/hyper.rs

+12-8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ use std::net::SocketAddr;
99
use std::sync::{Arc, Mutex};
1010
use std::time::Duration;
1111

12+
// needed to have common code for `mod support` in unit and integrations tests
13+
extern crate mbedtls;
14+
15+
mod support;
16+
use support::thread_spawn_named;
17+
1218
// Native TLS compatibility - to move to native tls client in the future
1319
#[derive(Clone)]
1420
pub struct TlsStream<T> {
@@ -254,12 +260,12 @@ mod tests {
254260

255261
let clone1 = client.clone();
256262
let clone2 = client.clone();
257-
let t1 = std::thread::spawn(move || {
263+
let t1 = thread_spawn_named("client1", move || {
258264
let response = clone1.get("https://google.com").send().unwrap();
259265
assert_eq!(response.status, hyper::status::StatusCode::Ok);
260266
});
261267

262-
let t2 = std::thread::spawn(move || {
268+
let t2 = thread_spawn_named("client2", move || {
263269
clone2.post("https://google.com").body("foo=bar").send().unwrap();
264270
});
265271

@@ -353,12 +359,10 @@ mod tests {
353359
let client1 = client.clone();
354360

355361
// If this fails due to EWOULDBLOCK it means not enough threads were created.
356-
let t1 = std::thread::Builder::new()
357-
.spawn(move || {
358-
let response = client1.post(&format!("https://{}/path", local_addr)).body("foo=bar").send();
359-
println!("{:?}", response);
360-
})
361-
.unwrap();
362+
let t1 = thread_spawn_named("client", move || {
363+
let response = client1.post(&format!("https://{}/path", local_addr)).body("foo=bar").send();
364+
println!("{:?}", response);
365+
});
362366

363367
t1.join().unwrap();
364368
handler.close().unwrap();

mbedtls/tests/ssl_conf_ca_cb.rs

+21-12
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ mod test {
5959
use super::*;
6060
use crate::support::keys;
6161
use crate::support::net::create_tcp_pair;
62+
use crate::support::thread_spawn_named;
6263
use mbedtls::error::codes;
63-
use std::thread;
6464

6565
// This callback should accept any valid self-signed certificate
6666
fn self_signed_ca_callback(child: &MbedtlsList<Certificate>) -> TlsResult<MbedtlsList<Certificate>> {
@@ -74,8 +74,10 @@ mod test {
7474
let ca_callback = |_: &MbedtlsList<Certificate>| -> TlsResult<MbedtlsList<Certificate>> {
7575
Ok(Certificate::from_pem_multiple(keys::ROOT_CA_CERT.as_bytes()).unwrap())
7676
};
77-
let c = thread::spawn(move || super::client(c, ca_callback).unwrap());
78-
let s = thread::spawn(move || super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap());
77+
let c = thread_spawn_named("client", move || super::client(c, ca_callback).unwrap());
78+
let s = thread_spawn_named("server", move || {
79+
super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap()
80+
});
7981
c.join().unwrap();
8082
s.join().unwrap();
8183
}
@@ -85,20 +87,24 @@ mod test {
8587
let (c, s) = create_tcp_pair().unwrap();
8688
let ca_callback =
8789
|_: &MbedtlsList<Certificate>| -> TlsResult<MbedtlsList<Certificate>> { Ok(MbedtlsList::<Certificate>::new()) };
88-
let c = thread::spawn(move || {
90+
let c = thread_spawn_named("client", move || {
8991
let result = super::client(c, ca_callback);
9092
assert_eq!(result, Err(codes::X509CertVerifyFailed.into()));
9193
});
92-
let s = thread::spawn(move || super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap());
94+
let s = thread_spawn_named("server", move || {
95+
super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap()
96+
});
9397
c.join().unwrap();
9498
s.join().unwrap();
9599
}
96100

97101
#[test]
98102
fn callback_self_signed() {
99103
let (c, s) = create_tcp_pair().unwrap();
100-
let c = thread::spawn(move || super::client(c, self_signed_ca_callback).unwrap());
101-
let s = thread::spawn(move || super::server(s, keys::PEM_SELF_SIGNED_CERT, keys::PEM_SELF_SIGNED_KEY).unwrap());
104+
let c = thread_spawn_named("client", move || super::client(c, self_signed_ca_callback).unwrap());
105+
let s = thread_spawn_named("server", move || {
106+
super::server(s, keys::PEM_SELF_SIGNED_CERT, keys::PEM_SELF_SIGNED_KEY).unwrap()
107+
});
102108
c.join().unwrap();
103109
s.join().unwrap();
104110
}
@@ -109,11 +115,13 @@ mod test {
109115
// be rejected by the client, because the ca_callback should only accept
110116
// self-signed certificates.
111117
let (c, s) = create_tcp_pair().unwrap();
112-
let c = thread::spawn(move || {
118+
let c = thread_spawn_named("client", move || {
113119
let result = super::client(c, self_signed_ca_callback);
114120
assert_eq!(result, Err(codes::X509CertVerifyFailed.into()));
115121
});
116-
let s = thread::spawn(move || super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap());
122+
let s = thread_spawn_named("server", move || {
123+
super::server(s, keys::PEM_CERT.as_bytes(), keys::PEM_KEY.as_bytes()).unwrap()
124+
});
117125
c.join().unwrap();
118126
s.join().unwrap();
119127
}
@@ -123,12 +131,13 @@ mod test {
123131
// We set up the server to supply a self-signed certificate with an invalid
124132
// signature. It should be rejected by the client.
125133
let (c, s) = create_tcp_pair().unwrap();
126-
let c = thread::spawn(move || {
134+
let c = thread_spawn_named("client", move || {
127135
let result = super::client(c, self_signed_ca_callback);
128136
assert_eq!(result, Err(codes::X509CertVerifyFailed.into()));
129137
});
130-
let s =
131-
thread::spawn(move || super::server(s, keys::PEM_SELF_SIGNED_CERT_INVALID_SIG, keys::PEM_SELF_SIGNED_KEY).unwrap());
138+
let s = thread_spawn_named("server", move || {
139+
super::server(s, keys::PEM_SELF_SIGNED_CERT_INVALID_SIG, keys::PEM_SELF_SIGNED_KEY).unwrap()
140+
});
132141
c.join().unwrap();
133142
s.join().unwrap();
134143
}

mbedtls/tests/ssl_conf_verify.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,16 @@ fn server(conn: TcpStream) -> TlsResult<()> {
8383
#[cfg(unix)]
8484
mod test {
8585
use crate::support::net::create_tcp_pair;
86-
use std::thread;
86+
use crate::support::thread_spawn_named;
8787

8888
#[test]
8989
fn callback_set_verify_flags() {
9090
let (c, s) = create_tcp_pair().unwrap();
9191

92-
let c = thread::spawn(move || super::client(c, super::Test::CallbackSetVerifyFlags).unwrap());
93-
let s = thread::spawn(move || super::server(s).unwrap());
92+
let c = thread_spawn_named("client", move || {
93+
super::client(c, super::Test::CallbackSetVerifyFlags).unwrap()
94+
});
95+
let s = thread_spawn_named("server", move || super::server(s).unwrap());
9496
c.join().unwrap();
9597
s.join().unwrap();
9698
}
@@ -99,8 +101,8 @@ mod test {
99101
fn callback_error() {
100102
let (c, s) = create_tcp_pair().unwrap();
101103

102-
let c = thread::spawn(move || super::client(c, super::Test::CallbackError).unwrap());
103-
let s = thread::spawn(move || super::server(s).unwrap());
104+
let c = thread_spawn_named("client", move || super::client(c, super::Test::CallbackError).unwrap());
105+
let s = thread_spawn_named("server", move || super::server(s).unwrap());
104106
c.join().unwrap();
105107
s.join().unwrap();
106108
}

mbedtls/tests/support/mod.rs

+13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* according to those terms. */
88

99
#![allow(dead_code)]
10+
1011
#[cfg(all(feature = "std", feature = "async"))]
1112
pub mod custom_write_all;
1213
pub mod entropy;
@@ -15,3 +16,15 @@ pub mod keys;
1516
#[cfg(sys_std_component = "net")]
1617
pub mod net;
1718
pub mod rand;
19+
20+
#[cfg(feature = "std")]
21+
use std::thread::{Builder, JoinHandle};
22+
#[cfg(feature = "std")]
23+
pub fn thread_spawn_named<F, T, S>(name: S, f: F) -> JoinHandle<T>
24+
where
25+
F: FnOnce() -> T + Send + 'static,
26+
T: Send + 'static,
27+
S: Into<String>,
28+
{
29+
Builder::new().name(name.into()).spawn(f).unwrap()
30+
}

0 commit comments

Comments
 (0)