Skip to content

Commit

Permalink
add test for retry token expired
Browse files Browse the repository at this point in the history
  • Loading branch information
yohachiSuga committed Feb 2, 2025
1 parent f4172ea commit b4378bb
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions quinn-proto/src/tests/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,43 @@ fn stateless_retry() {
assert_eq!(pair.server.known_cids(), 0);
}

#[test]
fn retry_token_expired() {
let _guard = subscribe();

let fake_time = Arc::new(FakeTimeSource::new());
let retry_token_lifetime = Duration::from_secs(1);

let mut pair = Pair::default();
pair.server.handle_incoming = Box::new(validate_incoming);

let mut config = server_config();
config
.time_source(Arc::clone(&fake_time) as _)
.retry_token_lifetime(retry_token_lifetime);
pair.server.set_server_config(Some(Arc::new(config)));

let client_ch = pair.begin_connect(client_config());
pair.drive_client();
pair.drive_server();
pair.drive_client();

// to expire retry token
fake_time.advance(retry_token_lifetime + Duration::from_millis(1));

pair.drive();
assert_matches!(
pair.client_conn_mut(client_ch).poll(),
Some(Event::ConnectionLost { reason: ConnectionError::ConnectionClosed(err) })
if err.error_code == TransportErrorCode::INVALID_TOKEN
);

assert_eq!(pair.client.known_connections(), 0);
assert_eq!(pair.client.known_cids(), 0);
assert_eq!(pair.server.known_connections(), 0);
assert_eq!(pair.server.known_cids(), 0);
}

#[test]
fn use_token() {
let _guard = subscribe();
Expand Down

0 comments on commit b4378bb

Please sign in to comment.