-
Notifications
You must be signed in to change notification settings - Fork 27
Gstreamer Multimedia TestSuite #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@ramyathallam files itself are missing in the PR. Please follow the guidelines.
|
Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com> Signed-off-by: rthallam <rthallam@qti.qualcomm.com> Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com>
Signed-off-by: rthallam <rthallam@qti.qualcomm.com> Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com>
Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com>
Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com>
Implemented comprehensive GStreamer validation with 21 test cases across four independent suites: Video: H.264/H.265/VP9 encode/decode with V4L2 (10 tests) Audio: PulseAudio capture/playback (2 tests) Display: Wayland compositor validation (4 tests) Camera: libcamera capture and encoding (5 tests) Features master runner, per-suite execution, common validation framework, detailed logging, and CI/CD integration (LAVA YAML configs) Signed-off-by: ramyathallam <rthallam@qti.qualcomm.com>
smuppand
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Refactor runners to reuse Runner/utils/lib_gstreamer.sh + functestlib.sh (no duplicate pipeline runner frameworks, no CSV/JUnit unless you provide the proper usage and justification). We will review once it fixes all above
| @@ -0,0 +1,322 @@ | |||
| # GStreamer Audio Tests | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Standardize to one canonical location
Runner/suites/Multimedia/Gstreamer/<Audio|Video|Display|Camera>/...
Remove/avoid Runner/suites/Gstreamer/... (top-level under Runner)
|
|
||
| run: | ||
| steps: | ||
| - cd Runner/suites/Gstreamer/Audio |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After you move suites under Runner/suites/Multimedia/Gstreamer/..., update YAML to:
cd Runner/suites/Multimedia/Gstreamer/Audio
| } | ||
|
|
||
| run_test_suite() { | ||
| local suite_name="$1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace local x=... with plain variables (or wrap in subshell patterns carefully).
Run ShellCheck against every added/modified run.sh and keep it clean like your other suites.
| done | ||
| } | ||
|
|
||
| run_test_suite() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put all GStreamer common logic in:
Runner/utils/lib_gstreamer.sh (extend it)
Keep suite run.sh minimal:
parse args/env
call lib_gstreamer.sh functions to build/run pipelines with timeouts
apply evidence checks (reuse audio_common evidence helpers)
write .res (PASS/FAIL/SKIP only)
If you need “decode/encode matrix”, do it as:
a list of configs inside run.sh or a small .list file in the suite folder
iterate configs, emit per-config logs, aggregate final PASS/FAIL
| # Overall result | ||
| if [ "$pass" -eq 0 ] && [ "$fail" -eq 0 ] && [ "$skip" -gt 0 ]; then | ||
| log_skip "$TESTNAME: SKIP" | ||
| printf '%s\n' "$TESTNAME SKIP" >"$RES_FILE" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some parts imply richer result output (“PASS ”). Your testkit’s LAVA flow typically expects .res to contain only PASS|FAIL|SKIP, and then send-to-lava.sh handles publishing. (Your AudioPlayback follows this.) Make all new suites follow that exact contract.
|
@ramyathallam also look into the workflow failures to address. https://github.com/qualcomm-linux/qcom-linux-testkit/actions/runs/20990382009/job/60470566467?pr=250 |
Gstreamer Multimedia TestSuite (Video/Audio/Display/Camera)
Implement comprehensive GStreamer validation with 21 test cases across
four independent suites:
Features master runner, per-suite execution, common validation framework,
detailed logging, and CI/CD integration (LAVA YAML configs).