From 965fde7baea794e1322028ed607196d399911732 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 24 Oct 2023 13:19:32 +0200 Subject: [PATCH] Test new session callback on server side --- boring/src/ssl/test/session.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/boring/src/ssl/test/session.rs b/boring/src/ssl/test/session.rs index c5f0b7dd..2754ad3b 100644 --- a/boring/src/ssl/test/session.rs +++ b/boring/src/ssl/test/session.rs @@ -1,7 +1,10 @@ use std::sync::atomic::{AtomicBool, Ordering}; +use std::sync::OnceLock; use crate::ssl::test::server::Server; -use crate::ssl::{Ssl, SslContext, SslContextBuilder, SslMethod, SslSessionCacheMode}; +use crate::ssl::{ + Ssl, SslContext, SslContextBuilder, SslMethod, SslOptions, SslSessionCacheMode, SslVersion, +}; #[test] fn idle_session() { @@ -28,9 +31,18 @@ fn active_session() { #[test] fn new_session_callback() { - static CALLED_BACK: AtomicBool = AtomicBool::new(false); + static SESSION_ID: OnceLock> = OnceLock::new(); let mut server = Server::builder(); + + server + .ctx() + .set_max_proto_version(Some(SslVersion::TLS1_2)) + .unwrap(); + server.ctx().set_options(SslOptions::NO_TICKET); + server + .ctx() + .set_new_session_callback(|_, session| SESSION_ID.set(session.id().to_owned()).unwrap()); server.ctx().set_session_id_context(b"foo").unwrap(); let server = server.build(); @@ -42,11 +54,11 @@ fn new_session_callback() { .set_session_cache_mode(SslSessionCacheMode::CLIENT | SslSessionCacheMode::NO_INTERNAL); client .ctx() - .set_new_session_callback(|_, _| CALLED_BACK.store(true, Ordering::SeqCst)); + .set_new_session_callback(|_, session| assert_eq!(SESSION_ID.get().unwrap(), session.id())); client.connect(); - assert!(CALLED_BACK.load(Ordering::SeqCst)); + assert!(SESSION_ID.get().is_some()); } #[test]