validate: add config file support
authorStéphane Cerveau <scerveau@collabora.com>
Thu, 29 Apr 2021 08:09:05 +0000 (10:09 +0200)
committerStéphane Cerveau <scerveau@collabora.com>
Wed, 5 May 2021 08:58:10 +0000 (10:58 +0200)
Each test can now use a config file for
the given media file used to test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/243>

validate/launcher/apps/gstvalidate.py
validate/launcher/baseclasses.py

index 51828c5..b9b11dd 100644 (file)
@@ -696,7 +696,7 @@ class GstValidateLaunchTest(GstValidateTest):
                  media_descriptor=None, duration=0, hard_timeout=None,
                  extra_env_variables=None, expected_issues=None):
 
-        extra_env_variables = extra_env_variables or {}
+        self.extra_env_variables = extra_env_variables or {}
 
         if scenario:
             duration = scenario.get_duration()
@@ -732,7 +732,7 @@ class GstValidateMediaCheckTest(GstValidateTest):
                  uri, minfo_path, timeout=DEFAULT_TIMEOUT,
                  extra_env_variables=None,
                  expected_issues=None):
-        extra_env_variables = extra_env_variables or {}
+        self.extra_env_variables = extra_env_variables or {}
 
         super(
             GstValidateMediaCheckTest, self).__init__(GstValidateBaseTestManager.MEDIA_CHECK_COMMAND, classname,
@@ -764,7 +764,7 @@ class GstValidateTranscodingTest(GstValidateTest, GstValidateEncodingTestInterfa
                  expected_issues=None):
         Loggable.__init__(self)
 
-        extra_env_variables = extra_env_variables or {}
+        self.extra_env_variables = extra_env_variables or {}
 
         file_dur = int(media_descriptor.get_duration()) / GST_SECOND
         if not media_descriptor.get_num_tracks("video"):
index 00832bc..5f9f29f 100644 (file)
@@ -871,6 +871,10 @@ class GstValidateTest(Test):
                                               extra_env_variables=extra_env_variables,
                                               expected_issues=expected_issues,
                                               workdir=workdir)
+        if media_descriptor and media_descriptor.get_media_filepath():
+            config_file = os.path.join(media_descriptor.get_media_filepath() + '.config')
+            if os.path.isfile(config_file):
+                self.add_validate_config(config_file, extra_env_variables)
 
         if scenario is None or scenario.name.lower() == "none":
             self.scenario = None