mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-26 19:41:09 +00:00
gstreamer/buffer: Add tests for various memory related buffer API
This commit is contained in:
parent
9e0c980a49
commit
9b782b4dfa
1 changed files with 109 additions and 0 deletions
|
@ -1096,4 +1096,113 @@ mod tests {
|
||||||
assert_eq!(data.as_slice(), vec![0, 2, 3, 4].as_slice());
|
assert_eq!(data.as_slice(), vec![0, 2, 3, 4].as_slice());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_memories() {
|
||||||
|
::init().unwrap();
|
||||||
|
|
||||||
|
let mut buffer = Buffer::new();
|
||||||
|
{
|
||||||
|
let buffer = buffer.get_mut().unwrap();
|
||||||
|
buffer.append_memory(::Memory::from_mut_slice(vec![0; 5]));
|
||||||
|
buffer.append_memory(::Memory::from_mut_slice(vec![0; 5]));
|
||||||
|
buffer.append_memory(::Memory::from_mut_slice(vec![0; 5]));
|
||||||
|
buffer.append_memory(::Memory::from_mut_slice(vec![0; 5]));
|
||||||
|
buffer.append_memory(::Memory::from_mut_slice(vec![0; 10]));
|
||||||
|
}
|
||||||
|
|
||||||
|
assert!(buffer.is_all_memory_writable());
|
||||||
|
assert_eq!(buffer.n_memory(), 5);
|
||||||
|
assert_eq!(buffer.get_size(), 30);
|
||||||
|
|
||||||
|
for i in 0..5 {
|
||||||
|
{
|
||||||
|
let mem = buffer.get_memory(i).unwrap();
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
let mem = buffer.peek_memory(i);
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
let buffer = buffer.get_mut().unwrap();
|
||||||
|
let mem = buffer.peek_memory_mut(i).unwrap();
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_writable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
let buffer = buffer.get_mut().unwrap();
|
||||||
|
let mut last = 0;
|
||||||
|
for (i, mem) in buffer.iter_memories_mut().unwrap().enumerate() {
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_writable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
last = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(last, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut last = 0;
|
||||||
|
for (i, mem) in buffer.iter_memories().enumerate() {
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
last = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(last, 4);
|
||||||
|
|
||||||
|
let mut last = 0;
|
||||||
|
for (i, mem) in buffer.iter_memories_owned().enumerate() {
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
assert_eq!(mem.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
let map = mem.map_readable().unwrap();
|
||||||
|
assert_eq!(map.get_size(), if i < 4 { 5 } else { 10 });
|
||||||
|
}
|
||||||
|
|
||||||
|
last = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(last, 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue