meta, handles-states=true, args = { "videotestsrc pattern=ball animation-mode=frames num-buffers=30 ! video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true", }, expected-issues = { [ expected-issue, level=critical, issue-id=scenario::execution-error, details="Pipeline position doesn.t match expectations got 0:00:00.100000000 instead of.*", ], [ expected-issue, level=critical, issue-id=scenario::execution-error, details="Pipeline position doesn.t match expectations got 0:00:00.200000000 instead of.*", ], } pause; foreach, n=[0, 2], actions = { [seek, start="$(position)+0.1", flags="accurate+flush"], [check-position, expected-position="expr($(n)*0.01)"], # expected to fail } priv_check-action-type-calls, type=seek, n=2 priv_check-action-type-calls, type=check-position, n=2 foreach, n=[0, 6], actions = { [seek, start="$(position)+0.1", flags="accurate+flush"], [check-position, expected-position="expr((3 + $(n)) * 0.1)"], } priv_check-action-type-calls, type=seek, n=8 priv_check-action-type-calls, type=check-position, n=8 check-position, expected-position=0.8 foreach, n=[9, 11], actions = { [seek, start="$(position)+0.1", flags="accurate+flush"], [check-position, expected-position="expr($(n)*0.1)"], } priv_check-action-type-calls, type=seek, n=10 # We called it once manually priv_check-action-type-calls, type=check-position, n=11 check-position, expected-position=1.0 stop