diff --git a/net/wire/src/network_address/onion_addr.rs b/net/wire/src/network_address/onion_addr.rs index 4aa868620..d4f7ff678 100644 --- a/net/wire/src/network_address/onion_addr.rs +++ b/net/wire/src/network_address/onion_addr.rs @@ -197,36 +197,47 @@ mod tests { proptest! { #[test] - fn parse_valid_onion_address_w_port(ports in vec(any::(), 18)) { - for (addr,port) in VALID_ONION_ADDRESSES.iter().zip(ports) { + fn parse_random_valid_onion_address(addresses in vec("[[a-z][2-7]]{56}\\.onion", 250)) { + for addr in addresses { + assert!( + OnionAddr::check_addr(&addr).is_ok(), + "Address {addr} has been reported as invalid." + ); + } + } - let mut s = (*addr).to_string(); - s.push(':'); - s.push_str(&port.to_string()); + #[test] + fn parse_random_valid_onion_address_w_port( + mut addresses in vec("[[a-z][2-7]]{56}\\.onion", 250), + ports in vec(any::(), 18) + ) { + for (addr,port) in addresses.iter_mut().zip(ports) { + addr.push(':'); + addr.push_str(&port.to_string()); assert!( - s.parse::().is_ok(), + addr.parse::().is_ok(), "Address {addr} has been reported as invalid." ); } } #[test] - fn invalid_onion_address(addresses in vec("[a-z][2-7]{56}.onion", 250)) { + fn parse_random_invalid_onion_address(addresses in vec(".{0,62}", 250)) { for addr in addresses { assert!( - OnionAddr::check_addr(&addr).is_err(), - "Address {addr} has been reported as valid." + addr.parse::().is_err(), + "Input {addr} has been parsed correctly." ); } } #[test] - fn parse_invalid_onion_address_w_port(addresses in vec("[a-z][2-7]{56}.onion:[0-9]{1,5}", 250)) { + fn parse_random_invalid_onion_address_w_port(addresses in vec(".{0,62}:.{1,5}", 250)) { for addr in addresses { assert!( addr.parse::().is_err(), - "Address {addr} has been reported as valid." + "Input {addr} has been parsed correctly." ); } }