mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 15:27:07 +00:00
9c08bfcaca
Sub-actions were really hard to use and conceptually weird. The implementation was ugly and made the code complex for nothing. Instead this commit introduces a `foreach` action type which allows repeating actions passed in an `actions` array the number of time specified by any `GstIntRange` value defined in the structure or its `repeat` field. This commit also makes sure that all action got through gst_validate_action_set_done upon finalization. + Cleanup surrounding code + Add tests Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/207>
51 lines
2.2 KiB
Text
51 lines
2.2 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.*\"",
|
|
"expected-issue, level=critical, issue-id=scenario::execution-error,
|
|
details=\"Expected subaction level 4, got 3\"",
|
|
"expected-issue, level=critical, issue-id=scenario::execution-error,
|
|
details=\"Expected subaction level 4, got 3\"",
|
|
"expected-issue, level=critical, issue-id=scenario::execution-error,
|
|
details=\"Expected subaction level 5, got 4\"",
|
|
"expected-issue, level=critical, issue-id=scenario::execution-error,
|
|
details=\"Expected subaction level 5, got 4\"",
|
|
}
|
|
|
|
pause;
|
|
|
|
|
|
foreach, n=[0, 2],
|
|
actions = {
|
|
"seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
|
|
"check-position, expected-position=\"expr($(n)*0.01)\"", # Expected failling subaction!
|
|
}
|
|
|
|
priv_check-action-type-calls, type=seek, n=2
|
|
priv_check-action-type-calls, type=check-position, n=2
|
|
|
|
foreach, n=[0, 2],
|
|
actions = {
|
|
"seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
|
|
"priv_check-subaction-level, level=1",
|
|
"foreach, n=[0, 1],
|
|
actions={
|
|
\"priv_check-subaction-level, level=2\",
|
|
\"foreach, j=[0, 1], actions={
|
|
\\\"priv_check-subaction-level, level=4\\\", # Failling... twice
|
|
\\\"priv_check-subaction-level, level=3\\\",
|
|
\\\"foreach, j=[0, 1], actions={
|
|
\\\\\\\"priv_check-subaction-level, level=4\\\\\\\",
|
|
\\\\\\\"priv_check-subaction-level, level=5\\\\\\\", # Failling... twice
|
|
}\\\",
|
|
}\",
|
|
}",
|
|
}
|
|
priv_check-action-type-calls, type=seek, n=4
|
|
stop
|