diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b70e4060d2..1b0bf60c00 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -521,7 +521,7 @@ integration testsuites fedora: extends: '.test fedora x86_64' parallel: 4 variables: - EXTRA_VALIDATE_ARGS: "--timeout-factor=2 --retry-on-failures --check-bugs --parts=${CI_NODE_TOTAL} --part-index=${CI_NODE_INDEX}" + EXTRA_VALIDATE_ARGS: "--timeout-factor=2 --retry-on-failures --check-bugs --parts=${CI_NODE_TOTAL} --part-index=${CI_NODE_INDEX} --sync" TEST_SUITE: "validate ges" # gstreamer-full: diff --git a/subprojects/gst-devtools/validate/launcher/main.py b/subprojects/gst-devtools/validate/launcher/main.py index b56ca07815..5f9cd5ff55 100644 --- a/subprojects/gst-devtools/validate/launcher/main.py +++ b/subprojects/gst-devtools/validate/launcher/main.py @@ -626,17 +626,6 @@ def setup_launcher_from_args(args, main_options=None): if options.remote_assets_url and options.sync and not os.path.exists(options.clone_dir): if not download_assets(options): return False, None, None - - for d in options.testsuites_dirs: - path = pathlib.Path(d).resolve() - if not path.as_posix().endswith('subprojects/gst-integration-testsuites/testsuites'): - continue - - # Ensure we have gst-integration-testsuites media files. - subprocess.check_call(['git', 'submodule', 'update', '--init'], - cwd=utils.DEFAULT_GST_QA_ASSETS) - subprocess.check_call(['git', 'lfs', 'pull', '--exclude='], - cwd=pathlib.Path(utils.DEFAULT_GST_QA_ASSETS) / 'medias') # Ensure that the scenario manager singleton is ready to be used ScenarioManager().config = options if not tests_launcher.set_settings(options, []): diff --git a/subprojects/gst-integration-testsuites/testsuites/ges.py b/subprojects/gst-integration-testsuites/testsuites/ges.py index 4413421e6d..97b6f15bde 100644 --- a/subprojects/gst-integration-testsuites/testsuites/ges.py +++ b/subprojects/gst-integration-testsuites/testsuites/ges.py @@ -21,23 +21,35 @@ The GES GstValidate default testsuite """ import os +import pathlib +import subprocess +from launcher import utils from testsuiteutils import update_assets from ges_known_issues import KNOWN_ISSUES TEST_MANAGER = "ges" + def setup_tests(test_manager, options): - assets_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "medias", "defaults")) + assets_dir = os.path.abspath(os.path.join( + os.path.dirname(__file__), "..", "medias", "defaults")) if options.sync: - if not update_assets(options, assets_dir): - return False + if not utils.USING_SUBPROJECT: + if not update_assets(options, assets_dir): + return False + else: + print("Syncing gst-integration-testsuites media files") + subprocess.check_call(['git', 'submodule', 'update', '--init'], + cwd=utils.DEFAULT_GST_QA_ASSETS) + subprocess.check_call(['git', 'lfs', 'pull', '--exclude='], + cwd=pathlib.Path(utils.DEFAULT_GST_QA_ASSETS) / 'medias') options.add_paths(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "medias", "defaults"))) projects_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "ges", "ges-projects")) scenarios_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "ges", - "scenarios")) + "scenarios")) test_manager.add_expected_issues(KNOWN_ISSUES) test_manager.register_defaults(projects_path, scenarios_path) return True diff --git a/subprojects/gst-integration-testsuites/testsuites/validate.py b/subprojects/gst-integration-testsuites/testsuites/validate.py index fadce42f9b..bb5327d97f 100644 --- a/subprojects/gst-integration-testsuites/testsuites/validate.py +++ b/subprojects/gst-integration-testsuites/testsuites/validate.py @@ -23,9 +23,12 @@ The GstValidate default testsuite import os import glob +import pathlib import re +import subprocess from testsuiteutils import update_assets +from launcher import utils from launcher.baseclasses import MediaFormatCombination from launcher.apps.gstvalidate import GstValidateSimpleTestsGenerator from validate_known_issues import KNOWN_ISSUES @@ -98,8 +101,15 @@ def setup_tests(test_manager, options): assets_dir = os.path.realpath(os.path.join(testsuite_dir, os.path.pardir, "medias", "defaults")) if options.sync: - if not update_assets(options, assets_dir): - return False + if not utils.USING_SUBPROJECT: + if not update_assets(options, assets_dir): + return False + else: + print("Syncing gst-integration-testsuites media files") + subprocess.check_call(['git', 'submodule', 'update', '--init'], + cwd=utils.DEFAULT_GST_QA_ASSETS) + subprocess.check_call(['git', 'lfs', 'pull', '--exclude='], + cwd=pathlib.Path(utils.DEFAULT_GST_QA_ASSETS) / 'medias') options.add_paths(assets_dir) options.set_http_server_dir(media_dir)