gstreamer/subprojects/gst-devtools/validate/tests/launcher_tests/foreach.validatetest

49 lines
1.6 KiB
Text

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