diff options
author | FujiApple <fujiapple852@gmail.com> | 2024-02-10 17:00:47 +0800 |
---|---|---|
committer | FujiApple <fujiapple852@gmail.com> | 2024-02-11 23:32:11 +0800 |
commit | 8654097f81444acbb5e8bb875d2f06151c260a66 (patch) | |
tree | 1c1edf5ae4fb850ba7f30ce1f2789da37f7619dd | |
parent | 7242d85b2bc63d679f2cf8abf621ab704b4efdaa (diff) |
test(net): added ipv4 test `test_dispatch_udp_probe_classic_privileged_with_payload`
-rw-r--r-- | src/tracing/net/ipv4.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/tracing/net/ipv4.rs b/src/tracing/net/ipv4.rs index 21d62ba..595db7f 100644 --- a/src/tracing/net/ipv4.rs +++ b/src/tracing/net/ipv4.rs @@ -676,6 +676,49 @@ mod tests { } #[test] + fn test_dispatch_udp_probe_classic_privileged_with_payload() -> anyhow::Result<()> { + let probe = make_udp_probe(123, 456); + let src_addr = Ipv4Addr::from_str("1.2.3.4")?; + let dest_addr = Ipv4Addr::from_str("5.6.7.8")?; + let privilege_mode = PrivilegeMode::Privileged; + let packet_size = PacketSize(38); + let payload_pattern = PayloadPattern(0xaa); + let multipath_strategy = MultipathStrategy::Classic; + let ipv4_byte_order = platform::PlatformIpv4FieldByteOrder::Network; + let expected_send_to_buf = hex_literal::hex!( + " + 45 00 00 26 04 d2 40 00 0a 11 00 00 01 02 03 04 + 05 06 07 08 00 7b 01 c8 00 12 98 1e aa aa aa aa + aa aa aa aa aa aa + " + ); + let expected_send_to_addr = SocketAddr::new(IpAddr::V4(dest_addr), 456); + + let mut mocket = MockSocket::new(); + mocket + .expect_send_to() + .with( + predicate::eq(expected_send_to_buf), + predicate::eq(expected_send_to_addr), + ) + .times(1) + .returning(|_, _| Ok(())); + + dispatch_udp_probe( + &mut mocket, + probe, + src_addr, + dest_addr, + privilege_mode, + packet_size, + payload_pattern, + multipath_strategy, + ipv4_byte_order, + )?; + Ok(()) + } + + #[test] fn test_dispatch_udp_probe_invalid_packet_size_low() -> anyhow::Result<()> { let probe = make_udp_probe(123, 456); let src_addr = Ipv4Addr::from_str("1.2.3.4")?; |