mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 23:36:38 +00:00
validate:launcher: Let the responsibility to update asset to the testsuite
Summary: It makes it easier to make sure that the assets needed for a specific testsuite are available when needed Reviewers: Mathieu_Du Differential Revision: http://phabricator.freedesktop.org/D92
This commit is contained in:
parent
101ed96b5a
commit
5a6d6b9475
1 changed files with 3 additions and 45 deletions
|
@ -17,7 +17,6 @@
|
|||
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import utils
|
||||
import urlparse
|
||||
|
@ -138,37 +137,9 @@ QA_ASSETS = "gst-integration-testsuites"
|
|||
MEDIAS_FOLDER = "medias"
|
||||
DEFAULT_GST_QA_ASSETS_REPO = "git://anongit.freedesktop.org/gstreamer/gst-integration-testsuites"
|
||||
OLD_DEFAULT_GST_QA_ASSETS_REPO = "https://gitlab.com/thiblahute/gst-integration-testsuites.git"
|
||||
DEFAULT_SYNC_ASSET_COMMAND = "git fetch origin && git checkout origin/master && git annex get medias/defaults/"
|
||||
DEFAULT_SYNC_ALL_ASSET_COMMAND = "git fetch origin && git checkout origin/master && git annex get ."
|
||||
DEFAULT_TESTSUITES_DIR = os.path.join(DEFAULT_MAIN_DIR, QA_ASSETS, "testsuites")
|
||||
|
||||
|
||||
def update_assets(options):
|
||||
try:
|
||||
if options.remote_assets_url == DEFAULT_GST_QA_ASSETS_REPO:
|
||||
if re.findall("origin.*%s" % OLD_DEFAULT_GST_QA_ASSETS_REPO,
|
||||
subprocess.check_output("cd %s && git remote -v" % options.clone_dir, shell=True)):
|
||||
launch_command("cd %s && git remote set-url origin %s" % (options.clone_dir,
|
||||
DEFAULT_GST_QA_ASSETS_REPO))
|
||||
|
||||
launch_command("cd %s && %s" % (options.clone_dir,
|
||||
options.update_assets_command),
|
||||
fails=True)
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
if "annex" in options.update_assets_command:
|
||||
m = "\n\nMAKE SURE YOU HAVE git-annex INSTALLED!"
|
||||
else:
|
||||
m = ""
|
||||
|
||||
printc("Could not update assets repository\n\nError: %s%s" % (e, m),
|
||||
Colors.FAIL, True)
|
||||
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def download_assets(options):
|
||||
try:
|
||||
launch_command("%s %s %s" % (options.get_assets_command,
|
||||
|
@ -235,7 +206,6 @@ class LauncherConfig(Loggable):
|
|||
self.http_bandwith = 1024 * 1024
|
||||
self.http_server_dir = None
|
||||
self.httponly = False
|
||||
self.update_assets_command = DEFAULT_SYNC_ASSET_COMMAND
|
||||
self.get_assets_command = "git clone"
|
||||
self.remote_assets_url = DEFAULT_GST_QA_ASSETS_REPO
|
||||
self.sync = False
|
||||
|
@ -293,8 +263,6 @@ class LauncherConfig(Loggable):
|
|||
|
||||
if self.sync_all is True:
|
||||
self.sync = True
|
||||
if self.update_assets_command == DEFAULT_SYNC_ASSET_COMMAND:
|
||||
self.update_assets_command = DEFAULT_SYNC_ALL_ASSET_COMMAND
|
||||
|
||||
if not self.sync and not os.path.exists(self.clone_dir) and \
|
||||
self.clone_dir == os.path.join(self.clone_dir, MEDIAS_FOLDER):
|
||||
|
@ -465,9 +433,6 @@ Note that all testsuite should be inside python modules, so the directory should
|
|||
help="Start the http server and quit")
|
||||
|
||||
assets_group = parser.add_argument_group("Handle remote assets")
|
||||
assets_group.add_argument(
|
||||
"-u", "--update-assets-command", dest="update_assets_command",
|
||||
help="Command to update assets")
|
||||
assets_group.add_argument(
|
||||
"--get-assets-command", dest="get_assets_command",
|
||||
help="Command to get assets")
|
||||
|
@ -497,16 +462,9 @@ Note that all testsuite should be inside python modules, so the directory should
|
|||
if not options.cleanup():
|
||||
exit(1)
|
||||
|
||||
if options.remote_assets_url and options.sync:
|
||||
if os.path.exists(options.clone_dir):
|
||||
if not update_assets(options):
|
||||
exit(1)
|
||||
else:
|
||||
if not download_assets(options):
|
||||
exit(1)
|
||||
|
||||
if not update_assets(options):
|
||||
exit(1)
|
||||
if options.remote_assets_url and options.sync and not os.path.exists(options.clone_dir):
|
||||
if not download_assets(options):
|
||||
exit(1)
|
||||
|
||||
tests_launcher.set_settings(options, [])
|
||||
|
||||
|
|
Loading…
Reference in a new issue