mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
validate:launcher: Run validate unit tests as GstValidate tests
So we have all the features and we can properly document known issue for them Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1130>
This commit is contained in:
parent
4dd0c6ce44
commit
34d05cd876
2 changed files with 61 additions and 11 deletions
|
@ -32,10 +32,17 @@ import concurrent.futures as conc
|
||||||
from launcher import config
|
from launcher import config
|
||||||
from launcher.utils import printc, Colors, get_gst_build_valgrind_suppressions
|
from launcher.utils import printc, Colors, get_gst_build_valgrind_suppressions
|
||||||
from launcher.main import setup_launcher_from_args
|
from launcher.main import setup_launcher_from_args
|
||||||
from launcher.baseclasses import VALGRIND_TIMEOUT_FACTOR
|
from launcher.baseclasses import VALGRIND_TIMEOUT_FACTOR, GstValidateTest
|
||||||
from launcher.apps.gstvalidate import GstValidateSimpleTest
|
from launcher.apps.gstvalidate import GstValidateSimpleTest
|
||||||
|
|
||||||
|
|
||||||
|
VALIDATE_TOOLS = ['gst-validate-1.0', 'gst-validate-1.0.exe',
|
||||||
|
'ges-launch-1.0', 'ges-launch-1.0.exe',
|
||||||
|
'gst-validate-transcoding-1.0', 'gst-validate-transcoding-1.0.exe',
|
||||||
|
'gst-validate-media-check-1.0', 'gst-validate-media-check-1.0.exe',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class MesonTest(Test):
|
class MesonTest(Test):
|
||||||
|
|
||||||
def __init__(self, name, options, reporter, test_infos, child_env=None):
|
def __init__(self, name, options, reporter, test_infos, child_env=None):
|
||||||
|
@ -108,6 +115,39 @@ class GstCheckTest(MesonTest):
|
||||||
|
|
||||||
return env
|
return env
|
||||||
|
|
||||||
|
class GstValidateCheckTest(GstValidateTest):
|
||||||
|
def __init__(self, name, options, reporter, test_infos, child_env=None):
|
||||||
|
ref_env = os.environ.copy()
|
||||||
|
if child_env is None:
|
||||||
|
child_env = {}
|
||||||
|
else:
|
||||||
|
ref_env.update(child_env)
|
||||||
|
|
||||||
|
child_env.update(test_infos['env'])
|
||||||
|
self.child_env = child_env
|
||||||
|
|
||||||
|
timeout = int(test_infos['timeout'])
|
||||||
|
super().__init__(
|
||||||
|
test_infos['cmd'][0], name, options,
|
||||||
|
reporter, timeout=timeout, hard_timeout=timeout,
|
||||||
|
is_parallel=test_infos.get('is_parallel', True),
|
||||||
|
workdir=test_infos['workdir']
|
||||||
|
)
|
||||||
|
|
||||||
|
self.test_infos = test_infos
|
||||||
|
|
||||||
|
def build_arguments(self):
|
||||||
|
self.add_arguments(*self.test_infos['cmd'][1:])
|
||||||
|
|
||||||
|
def get_subproc_env(self):
|
||||||
|
env = super().get_subproc_env()
|
||||||
|
env.update(self.child_env)
|
||||||
|
for var, val in self.child_env.items():
|
||||||
|
if val != os.environ.get(var):
|
||||||
|
self.add_env_variable(var, val)
|
||||||
|
|
||||||
|
return env
|
||||||
|
|
||||||
|
|
||||||
class MesonTestsManager(TestsManager):
|
class MesonTestsManager(TestsManager):
|
||||||
name = "mesontest"
|
name = "mesontest"
|
||||||
|
@ -394,7 +434,15 @@ class GstCheckTestsManager(MesonTestsManager):
|
||||||
self.options,
|
self.options,
|
||||||
self.reporter))
|
self.reporter))
|
||||||
continue
|
continue
|
||||||
if not gst_tests:
|
if os.path.basename(test['cmd'][0]) in VALIDATE_TOOLS:
|
||||||
|
child_env = self.get_child_env(name)
|
||||||
|
self.add_test(
|
||||||
|
GstValidateCheckTest(
|
||||||
|
name, self.options, self.reporter, test,
|
||||||
|
child_env
|
||||||
|
)
|
||||||
|
)
|
||||||
|
elif not gst_tests:
|
||||||
child_env = self.get_child_env(name)
|
child_env = self.get_child_env(name)
|
||||||
self.add_test(GstCheckTest(name, self.options, self.reporter, test,
|
self.add_test(GstCheckTest(name, self.options, self.reporter, test,
|
||||||
child_env))
|
child_env))
|
||||||
|
|
|
@ -823,7 +823,7 @@ class GstValidateTest(Test):
|
||||||
options, reporter, duration=0,
|
options, reporter, duration=0,
|
||||||
timeout=DEFAULT_TIMEOUT, scenario=None, hard_timeout=None,
|
timeout=DEFAULT_TIMEOUT, scenario=None, hard_timeout=None,
|
||||||
media_descriptor=None, extra_env_variables=None,
|
media_descriptor=None, extra_env_variables=None,
|
||||||
expected_issues=None, workdir=None):
|
expected_issues=None, workdir=None, **kwargs):
|
||||||
|
|
||||||
extra_env_variables = extra_env_variables or {}
|
extra_env_variables = extra_env_variables or {}
|
||||||
|
|
||||||
|
@ -861,14 +861,16 @@ class GstValidateTest(Test):
|
||||||
|
|
||||||
extra_env_variables["GST_VALIDATE_OVERRIDE"] = override_path
|
extra_env_variables["GST_VALIDATE_OVERRIDE"] = override_path
|
||||||
|
|
||||||
super(GstValidateTest, self).__init__(application_name, classname,
|
super().__init__(application_name,
|
||||||
|
classname,
|
||||||
options, reporter,
|
options, reporter,
|
||||||
duration=duration,
|
duration=duration,
|
||||||
timeout=timeout,
|
timeout=timeout,
|
||||||
hard_timeout=hard_timeout,
|
hard_timeout=hard_timeout,
|
||||||
extra_env_variables=extra_env_variables,
|
extra_env_variables=extra_env_variables,
|
||||||
expected_issues=expected_issues,
|
expected_issues=expected_issues,
|
||||||
workdir=workdir)
|
workdir=workdir,
|
||||||
|
**kwargs)
|
||||||
if media_descriptor and media_descriptor.get_media_filepath():
|
if media_descriptor and media_descriptor.get_media_filepath():
|
||||||
config_file = os.path.join(media_descriptor.get_media_filepath() + '.config')
|
config_file = os.path.join(media_descriptor.get_media_filepath() + '.config')
|
||||||
if os.path.isfile(config_file):
|
if os.path.isfile(config_file):
|
||||||
|
|
Loading…
Reference in a new issue