Skip to content

Commit f286333

Browse files
committed
Serialize tests that interact with the macOS Keychain
The macOS keychain is not thread safe. Running tests in parellel cause tests to fail nondeterministicly.
1 parent 485e489 commit f286333

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ openssl-sys = "0.9.81"
3434
openssl-probe = "0.1"
3535

3636
[dev-dependencies]
37+
serial_test = "3.2.0"
3738
tempfile = "3.0"
3839
test-cert-gen = "0.9"

src/test.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
extern crate serial_test;
2+
13
use std::fs;
24
use std::io::{Read, Write};
35
use std::net::{TcpListener, TcpStream};
46
use std::process::{Command, Stdio};
57
use std::string::String;
68
use std::thread;
79

10+
use self::serial_test::serial;
11+
812
use super::*;
913

1014
macro_rules! p {
@@ -48,13 +52,15 @@ fn connect_bad_hostname_ignored() {
4852
}
4953

5054
#[test]
55+
#[cfg_attr(target_os = "macos", serial)]
5156
fn connect_no_root_certs() {
5257
let builder = p!(TlsConnector::builder().disable_built_in_roots(true).build());
5358
let s = p!(TcpStream::connect("google.com:443"));
5459
assert!(builder.connect("google.com", s).is_err());
5560
}
5661

5762
#[test]
63+
#[cfg_attr(target_os = "macos", serial)]
5864
fn server_no_root_certs() {
5965
let keys = test_cert_gen::keys();
6066

@@ -96,6 +102,7 @@ fn server_no_root_certs() {
96102
}
97103

98104
#[test]
105+
#[cfg_attr(target_os = "macos", serial)]
99106
fn server() {
100107
let keys = test_cert_gen::keys();
101108

@@ -159,6 +166,7 @@ fn certificate_from_pem() {
159166
}
160167

161168
#[test]
169+
#[cfg_attr(target_os = "macos", serial)]
162170
fn peer_certificate() {
163171
let keys = test_cert_gen::keys();
164172

@@ -195,6 +203,7 @@ fn peer_certificate() {
195203
}
196204

197205
#[test]
206+
#[cfg_attr(target_os = "macos", serial)]
198207
fn server_tls11_only() {
199208
let keys = test_cert_gen::keys();
200209

@@ -240,6 +249,7 @@ fn server_tls11_only() {
240249
}
241250

242251
#[test]
252+
#[cfg_attr(target_os = "macos", serial)]
243253
fn server_no_shared_protocol() {
244254
let keys = test_cert_gen::keys();
245255

@@ -273,6 +283,7 @@ fn server_no_shared_protocol() {
273283
}
274284

275285
#[test]
286+
#[cfg_attr(target_os = "macos", serial)]
276287
fn server_untrusted() {
277288
let keys = test_cert_gen::keys();
278289

@@ -300,6 +311,7 @@ fn server_untrusted() {
300311
}
301312

302313
#[test]
314+
#[cfg_attr(target_os = "macos", serial)]
303315
fn server_untrusted_unverified() {
304316
let keys = test_cert_gen::keys();
305317

@@ -338,6 +350,7 @@ fn server_untrusted_unverified() {
338350
}
339351

340352
#[test]
353+
#[cfg_attr(target_os = "macos", serial)]
341354
fn import_same_identity_multiple_times() {
342355
let keys = test_cert_gen::keys();
343356

@@ -367,6 +380,7 @@ fn from_pkcs8_rejects_rsa_key() {
367380
}
368381

369382
#[test]
383+
#[cfg_attr(target_os = "macos", serial)]
370384
fn shutdown() {
371385
let keys = test_cert_gen::keys();
372386

0 commit comments

Comments
 (0)