From f58e2a9bdb42f5249f4b409e72732d6315abb1de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Thu, 14 Apr 2022 22:40:13 +0200 Subject: [PATCH] udp: improve test_connection_validator --- aquatic_udp/src/common.rs | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/aquatic_udp/src/common.rs b/aquatic_udp/src/common.rs index db7c47c..573b26a 100644 --- a/aquatic_udp/src/common.rs +++ b/aquatic_udp/src/common.rs @@ -329,23 +329,40 @@ mod tests { } #[quickcheck] - fn test_connection_validator(addr: IpAddr, max_connection_age: u32) -> bool { - let addr = CanonicalSocketAddr::new(SocketAddr::new(addr, 0)); + fn test_connection_validator( + original_addr: IpAddr, + different_addr: IpAddr, + max_connection_age: u32, + ) -> quickcheck::TestResult { + let original_addr = CanonicalSocketAddr::new(SocketAddr::new(original_addr, 0)); + let different_addr = CanonicalSocketAddr::new(SocketAddr::new(different_addr, 0)); - let mut config = Config::default(); + if original_addr == different_addr { + return quickcheck::TestResult::discard(); + } - config.cleaning.max_connection_age = max_connection_age; + let mut validator = { + let mut config = Config::default(); - let mut validator = ConnectionValidator::new(&config).unwrap(); + config.cleaning.max_connection_age = max_connection_age; - let connection_id = validator.create_connection_id(addr); + ConnectionValidator::new(&config).unwrap() + }; - let valid = validator.connection_id_valid(addr, connection_id); + let connection_id = validator.create_connection_id(original_addr); + + let original_valid = validator.connection_id_valid(original_addr, connection_id); + let different_valid = validator.connection_id_valid(different_addr, connection_id); + + if different_valid { + return quickcheck::TestResult::failed(); + } if max_connection_age == 0 { - !valid + quickcheck::TestResult::from_bool(!original_valid) } else { - valid // Note: depends on that running this test takes less than a second + // Note: depends on that running this test takes less than a second + quickcheck::TestResult::from_bool(original_valid) } } }