mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-25 11:01:10 +00:00
gstreamer: Add tests for pad probes taking and dropping data
This is quite similar to the HANDLED case, so reuse that code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1528>
This commit is contained in:
parent
6a87d4a66a
commit
bd37999166
1 changed files with 25 additions and 5 deletions
|
@ -2416,8 +2416,8 @@ mod tests {
|
||||||
assert_eq!(counter.load(std::sync::atomic::Ordering::SeqCst), 1);
|
assert_eq!(counter.load(std::sync::atomic::Ordering::SeqCst), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
fn do_probe_with_return(probe_return: crate::PadProbeReturn) {
|
||||||
fn test_probe() {
|
skip_assert_initialized!();
|
||||||
crate::init().unwrap();
|
crate::init().unwrap();
|
||||||
|
|
||||||
let (major, minor, micro, _) = crate::version();
|
let (major, minor, micro, _) = crate::version();
|
||||||
|
@ -2457,7 +2457,7 @@ mod tests {
|
||||||
} else {
|
} else {
|
||||||
unreachable!();
|
unreachable!();
|
||||||
}
|
}
|
||||||
crate::PadProbeReturn::Handled
|
probe_return
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2475,7 +2475,7 @@ mod tests {
|
||||||
} else {
|
} else {
|
||||||
unreachable!();
|
unreachable!();
|
||||||
}
|
}
|
||||||
crate::PadProbeReturn::Handled
|
probe_return
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2491,7 +2491,15 @@ mod tests {
|
||||||
assert!(pad.push_event(crate::event::Segment::new(segment.as_ref())));
|
assert!(pad.push_event(crate::event::Segment::new(segment.as_ref())));
|
||||||
|
|
||||||
assert_eq!(pad.push(crate::Buffer::new()), Ok(FlowSuccess::Ok));
|
assert_eq!(pad.push(crate::Buffer::new()), Ok(FlowSuccess::Ok));
|
||||||
assert_eq!(pad.push(crate::Buffer::new()), flow_override);
|
assert_eq!(
|
||||||
|
pad.push(crate::Buffer::new()),
|
||||||
|
// On Drop, we will get an Ok, not whatever value we returned
|
||||||
|
if probe_return == crate::PadProbeReturn::Drop {
|
||||||
|
Ok(FlowSuccess::Ok)
|
||||||
|
} else {
|
||||||
|
flow_override
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
let events = events.lock().unwrap();
|
let events = events.lock().unwrap();
|
||||||
let buffers = buffers.lock().unwrap();
|
let buffers = buffers.lock().unwrap();
|
||||||
|
@ -2514,6 +2522,18 @@ mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_probe() {
|
||||||
|
crate::init().unwrap();
|
||||||
|
do_probe_with_return(crate::PadProbeReturn::Handled);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_probe_drop() {
|
||||||
|
crate::init().unwrap();
|
||||||
|
do_probe_with_return(crate::PadProbeReturn::Drop);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_sticky_events() {
|
fn test_sticky_events() {
|
||||||
crate::init().unwrap();
|
crate::init().unwrap();
|
||||||
|
|
Loading…
Reference in a new issue