xref: /webrtc/rtp/src/codecs/opus/opus_test.rs (revision 259fddd2)
1 use super::*;
2 
3 use std::io::BufReader;
4 
5 use util::Error;
6 
7 #[test]
8 fn test_opus_unmarshal() -> Result<(), Error> {
9     let mut pck = OpusPacket::default();
10 
11     // Empty packet
12     let empty_bytes = vec![];
13     let mut reader = BufReader::new(empty_bytes.as_slice());
14     let result = pck.depacketize(&mut reader);
15     assert!(result.is_err(), "Result should be err in case of error");
16 
17     // Normal packet
18     let raw_bytes = vec![0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x90];
19     let mut reader = BufReader::new(raw_bytes.as_slice());
20     pck.depacketize(&mut reader)?;
21     assert_eq!(&raw_bytes, &pck.payload, "Payload must be same");
22 
23     Ok(())
24 }
25 
26 #[test]
27 fn test_opus_payload() -> Result<(), Error> {
28     let pck = OpusPayloader;
29     let empty = vec![];
30     let payload = vec![0x90, 0x90, 0x90];
31 
32     // Positive MTU, empty payload
33     let mut reader = BufReader::new(empty.as_slice());
34     let result = pck.payload(1, &mut reader)?;
35     assert!(result.is_empty(), "Generated payload should be empty");
36 
37     // Positive MTU, small payload
38     let mut reader = BufReader::new(payload.as_slice());
39     let result = pck.payload(1, &mut reader)?;
40     assert_eq!(result.len(), 1, "Generated payload should be the 1");
41 
42     // Negative MTU, small payload
43     let mut reader = BufReader::new(payload.as_slice());
44     let result = pck.payload(-1, &mut reader)?;
45     assert_eq!(result.len(), 1, "Generated payload should be the 1");
46 
47     // Positive MTU, small payload
48     let mut reader = BufReader::new(payload.as_slice());
49     let result = pck.payload(2, &mut reader)?;
50     assert_eq!(result.len(), 1, "Generated payload should be the 1");
51 
52     Ok(())
53 }
54