1 use crate::error::Result; 2 3 use super::*; 4 5 #[test] 6 fn test_tcp_frag_string() { 7 let f = TCP_FLAG_FIN; 8 assert_eq!(f.to_string(), "FIN", "should match"); 9 let f = TCP_FLAG_SYN; 10 assert_eq!(f.to_string(), "SYN", "should match"); 11 let f = TCP_FLAG_RST; 12 assert_eq!(f.to_string(), "RST", "should match"); 13 let f = TCP_FLAG_PSH; 14 assert_eq!(f.to_string(), "PSH", "should match"); 15 let f = TCP_FLAG_ACK; 16 assert_eq!(f.to_string(), "ACK", "should match"); 17 let f = TCP_FLAG_SYN | TCP_FLAG_ACK; 18 assert_eq!(f.to_string(), "SYN-ACK", "should match"); 19 } 20 21 const DEMO_IP: &str = "1.2.3.4"; 22 23 #[test] 24 fn test_chunk_udp() -> Result<()> { 25 let src = SocketAddr::from_str("192.168.0.2:1234")?; 26 let dst = SocketAddr::from_str(&(DEMO_IP.to_owned() + ":5678"))?; 27 28 let mut c = ChunkUdp::new(src, dst); 29 let s = c.to_string(); 30 log::debug!("chunk: {}", s); 31 assert_eq!(c.network(), UDP_STR, "should match"); 32 assert!(s.contains(&src.to_string()), "should include address"); 33 assert!(s.contains(&dst.to_string()), "should include address"); 34 assert_eq!(c.get_source_ip(), src.ip(), "ip should match"); 35 assert_eq!(c.get_destination_ip(), dst.ip(), "ip should match"); 36 37 // Test timestamp 38 let ts = c.set_timestamp(); 39 assert_eq!(ts, c.get_timestamp(), "timestamp should match"); 40 41 c.user_data = "Hello".as_bytes().to_vec(); 42 43 let cloned = c.clone_to(); 44 45 // Test setSourceAddr 46 c.set_source_addr("2.3.4.5:4000")?; 47 assert_eq!(c.source_addr().to_string(), "2.3.4.5:4000"); 48 49 // Test Tag() 50 assert!(!c.tag().is_empty(), "should not be empty"); 51 52 // Verify cloned chunk was not affected by the changes to original chunk 53 c.user_data[0] = b'!'; // oroginal: "Hello" -> "Hell!" 54 assert_eq!(cloned.user_data(), "Hello".as_bytes(), "should match"); 55 assert_eq!(cloned.source_addr().to_string(), "192.168.0.2:1234"); 56 assert_eq!(cloned.get_source_ip(), src.ip(), "ip should match"); 57 assert_eq!(cloned.get_destination_ip(), dst.ip(), "ip should match"); 58 59 Ok(()) 60 } 61