Merge branch 'gemini/jitter-tests': seq_before + buffer overflow unit tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -189,4 +189,38 @@ mod tests {
|
|||||||
jb.insert(5, frame(&mut enc, 600));
|
jb.insert(5, frame(&mut enc, 600));
|
||||||
assert_eq!(jb.packets.len(), 1); // only seq 7 remains buffered
|
assert_eq!(jb.packets.len(), 1); // only seq 7 remains buffered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_seq_before_ordering() {
|
||||||
|
// Basic ordering
|
||||||
|
assert!(seq_before(0, 1));
|
||||||
|
assert!(!seq_before(1, 0));
|
||||||
|
assert!(!seq_before(5, 5));
|
||||||
|
assert!(seq_before(100, 101));
|
||||||
|
assert!(!seq_before(101, 100));
|
||||||
|
|
||||||
|
// Wraparound
|
||||||
|
assert!(seq_before(u32::MAX, 0));
|
||||||
|
assert!(!seq_before(0, u32::MAX));
|
||||||
|
|
||||||
|
// Half-range boundary
|
||||||
|
assert!(seq_before(0, 0x7FFF_FFFF));
|
||||||
|
assert!(!seq_before(0, 0x8000_0000));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_jitter_buffer_overflow_resync() {
|
||||||
|
let mut jb = JitterBuffer::new().unwrap();
|
||||||
|
assert!(jb.next_seq.is_none());
|
||||||
|
|
||||||
|
let count = MAX_BUFFERED_FRAMES + 1;
|
||||||
|
for seq in 0..count {
|
||||||
|
jb.insert(seq as u32, vec![0u8]);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(jb.packets.len(), MAX_BUFFERED_FRAMES);
|
||||||
|
assert!(!jb.packets.contains_key(&0));
|
||||||
|
assert_eq!(jb.next_seq, Some(1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user