1# Pipeline with 2 branches, the first one write random data into a file in $(growing_file_location). 2# That branch is synchronized on the test clock that we drive in the scenario. 3# The second branch reads it with giosrc and does some tests like waiting for the 4# `done-waiting-signal` signals on the source etc... 5# 6# The whole dataflow is checked and we ensure that the exact same buffer content 7# is read from the giosrc. 8set-globals, growing_file_location="$(logsdir)/$(test_name)-growing.rand" 9meta, 10 seek=false, 11 handles-states=false, 12 args = { 13 "fakesrc num-buffers=30 datarate=30 filltype=pattern-span sizetype=fixed filltype=random format=time ! filesink sync=true location=$(growing_file_location) name=filesink buffer-mode=unbuffered \ 14 giosrc name=giosrc is-growing=true location=file://$(growing_file_location) ! fakesink name=growing-file-sink async=false" \ 15 }, 16 configs = { 17 "$(validateflow), pad=filesink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id,group-id,stream}\", buffers-checksum=as-id", 18 "$(validateflow), pad=growing-file-sink:sink, record-buffers=true, ignored-fields=\"stream-start={stream-id,group-id,stream}\", buffers-checksum=as-id", 19 } 20 21 22crank-clock, repeat=5 23wait, on-clock=true 24wait, signal-name=waiting-data, target-element-name=giosrc 25 26checkpoint 27 28crank-clock, repeat=5 29wait, on-clock=true 30wait, signal-name=waiting-data, target-element-name=giosrc 31 32wait, signal-name=done-waiting-data, target-element-name=giosrc, non-blocking=true 33crank-clock, repeat=21 34 35checkpoint 36 37wait, signal-name=waiting-data, target-element-name=giosrc 38 39checkpoint 40 41# Make sure EOS is outputted now, the scenario will automatically quit on EOS 42set-properties, giosrc::is_growing=false 43