@@ -123,4 +123,41 @@ defmodule Membrane.Integration.ConnectorTest do
123123
124124 [ stream_format: % Format { field: 0 } ] ++ data
125125 end
126+
127+ test "Membrane.Connector doesn't raise after removing its pad" do
128+ crash_group_spec = {
129+ for i <- 2 .. 5 do
130+ child ( { :connector , i } , Membrane.Connector )
131+ end ,
132+ group: :my_group , crash_group_mode: :temporary
133+ }
134+
135+ children_beyond_crash_group = [
136+ child ( :source , Testing.Source )
137+ |> child ( { :connector , 1 } , Membrane.Connector ) ,
138+ child ( { :connector , 6 } , Membrane.Connector )
139+ |> child ( :sink , Testing.Sink )
140+ ]
141+
142+ connector_links =
143+ for i <- 1 .. 5 do
144+ get_child ( { :connector , i } )
145+ |> get_child ( { :connector , i + 1 } )
146+ end
147+
148+ spec = [ crash_group_spec , children_beyond_crash_group , connector_links ]
149+ pipeline = Testing.Pipeline . start_link_supervised! ( spec: spec )
150+
151+ Process . sleep ( 200 )
152+
153+ { :ok , connector_pid } = Testing.Pipeline . get_child_pid ( pipeline , { :connector , 3 } )
154+ Process . exit ( connector_pid , :kill )
155+
156+ Process . sleep ( 200 )
157+
158+ assert Process . alive? ( connector_pid ) == false
159+ assert Process . alive? ( pipeline )
160+
161+ Testing.Pipeline . terminate ( pipeline )
162+ end
126163end
0 commit comments