From 3e040c65f17b87cb56b7a1142e67441a6de7baba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 18 Oct 2024 17:20:31 +0300 Subject: [PATCH] reqwesthttpsrc: Allow a server error after a seek There might be a server error because a seek would immediately close the old connection without allowing for clean shutdown. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/527 Part-of: --- net/reqwest/tests/reqwesthttpsrc.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/net/reqwest/tests/reqwesthttpsrc.rs b/net/reqwest/tests/reqwesthttpsrc.rs index 3bbdf125..ff4a9376 100644 --- a/net/reqwest/tests/reqwesthttpsrc.rs +++ b/net/reqwest/tests/reqwesthttpsrc.rs @@ -254,11 +254,16 @@ impl Harness { fn wait_for_segment( &mut self, allow_buffer: bool, + mut allow_server_error: bool, ) -> gst::FormattedSegment { loop { match self.receiver.as_mut().unwrap().recv().unwrap() { Message::ServerError(err) => { - panic!("Got server error: {err}"); + if allow_server_error { + allow_server_error = false; + } else { + panic!("Got server error: {err}"); + } } Message::Event(ev) => { use gst::EventView; @@ -939,7 +944,7 @@ fn test_seek_after_ready() { src.set_state(gst::State::Playing).unwrap(); }); - let segment = h.wait_for_segment(false); + let segment = h.wait_for_segment(false, true); assert_eq!(segment.start(), Some(123.bytes())); let mut expected_output = vec![0; 8192 - 123]; @@ -1015,7 +1020,7 @@ fn test_seek_after_buffer_received() { src.seek_simple(gst::SeekFlags::FLUSH, 123.bytes()).unwrap(); }); - let segment = h.wait_for_segment(true); + let segment = h.wait_for_segment(true, true); assert_eq!(segment.start(), Some(123.bytes())); let mut expected_output = vec![0; 8192 - 123]; @@ -1101,7 +1106,7 @@ fn test_seek_with_stop_position() { .unwrap(); }); - let segment = h.wait_for_segment(true); + let segment = h.wait_for_segment(true, true); assert_eq!(segment.start(), Some(start)); assert_eq!(segment.stop(), Some(stop));