validate:scenario: Replace the `sub-action` with a `foreach` action type
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: <gstreamer/gst-devtools!207>
- validate/data/scenarios/change_state_intensive.scenario 6 additions, 1 deletionvalidate/data/scenarios/change_state_intensive.scenario
- validate/gst/validate/gst-validate-internal.h 1 addition, 1 deletionvalidate/gst/validate/gst-validate-internal.h
- validate/gst/validate/gst-validate-report.c 34 additions, 24 deletionsvalidate/gst/validate/gst-validate-report.c
- validate/gst/validate/gst-validate-reporter.c 27 additions, 18 deletionsvalidate/gst/validate/gst-validate-reporter.c
- validate/gst/validate/gst-validate-scenario.c 303 additions, 163 deletionsvalidate/gst/validate/gst-validate-scenario.c
- validate/gst/validate/gst-validate-scenario.h 5 additions, 0 deletionsvalidate/gst/validate/gst-validate-scenario.h
- validate/tests/launcher_tests/foreach.validatetest 47 additions, 0 deletionsvalidate/tests/launcher_tests/foreach.validatetest
- validate/tests/launcher_tests/foreach/flow-expectations/log-sink-sink-expected 24 additions, 0 deletions...er_tests/foreach/flow-expectations/log-sink-sink-expected
- validate/tests/launcher_tests/foreach_deep.validatetest 51 additions, 0 deletionsvalidate/tests/launcher_tests/foreach_deep.validatetest
- validate/tests/launcher_tests/foreach_repeat.validatetest 31 additions, 0 deletionsvalidate/tests/launcher_tests/foreach_repeat.validatetest