quinn: fix racy tests

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
This commit is contained in:
Andoni Morales Alastruey 2024-12-04 17:47:23 +00:00 committed by GStreamer Marge Bot
parent 2d6f084596
commit b020ae6fc2

View file

@ -9,6 +9,8 @@
use gst::prelude::*; use gst::prelude::*;
use serial_test::serial; use serial_test::serial;
use std::sync::Arc;
use std::sync::Mutex;
use std::thread; use std::thread;
fn init() { fn init() {
@ -41,9 +43,13 @@ fn send_receive(src_pipeline_props: &str, sink_pipeline_props: &str) {
address=127.0.0.1 secure-connection=false", address=127.0.0.1 secure-connection=false",
sink_pipeline_props sink_pipeline_props
); );
let h1_orig = Arc::new(Mutex::new(gst_check::Harness::new_empty()));
let h11 = h1_orig.clone();
thread::spawn(move || { thread::spawn(move || {
let mut h1 = gst_check::Harness::new_empty(); let mut h1 = h11.lock().unwrap();
h1.add_parse(&sink_pipeline); h1.add_parse(&sink_pipeline);
h1.set_src_caps(gst::Caps::builder("text/plain").build()); h1.set_src_caps(gst::Caps::builder("text/plain").build());
@ -54,8 +60,6 @@ fn send_receive(src_pipeline_props: &str, sink_pipeline_props: &str) {
h1.push_event(gst::event::Eos::new()); h1.push_event(gst::event::Eos::new());
h1.element().unwrap().set_state(gst::State::Null).unwrap();
drop(h1); drop(h1);
}); });
@ -71,8 +75,13 @@ fn send_receive(src_pipeline_props: &str, sink_pipeline_props: &str) {
buf.into_mapped_buffer_readable().unwrap().as_slice() buf.into_mapped_buffer_readable().unwrap().as_slice()
); );
h2.element().unwrap().set_state(gst::State::Null).unwrap(); // Close the server now that the client has finished reading the data
let h11 = h1_orig.clone();
let h1 = h11.lock().unwrap();
h1.element().unwrap().set_state(gst::State::Null).unwrap();
drop(h1);
h2.element().unwrap().set_state(gst::State::Null).unwrap();
drop(h2); drop(h2);
} }