summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFujiApple <fujiapple852@gmail.com>2024-02-10 17:00:47 +0800
committerFujiApple <fujiapple852@gmail.com>2024-02-11 23:32:11 +0800
commit8654097f81444acbb5e8bb875d2f06151c260a66 (patch)
tree1c1edf5ae4fb850ba7f30ce1f2789da37f7619dd
parent7242d85b2bc63d679f2cf8abf621ab704b4efdaa (diff)
test(net): added ipv4 test `test_dispatch_udp_probe_classic_privileged_with_payload`
-rw-r--r--src/tracing/net/ipv4.rs43
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")?;