• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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