diff --git a/testing/config/external-media-tests-requirements.txt b/testing/config/external-media-tests-requirements.txt deleted file mode 100644 index a0759286fd6..00000000000 --- a/testing/config/external-media-tests-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ --r marionette_requirements.txt -../external-media-tests/ -../puppeteer/firefox/ diff --git a/testing/mozharness/configs/mediatests/buildbot_posix_config.py b/testing/mozharness/configs/mediatests/buildbot_posix_config.py index 8c30a9f2871..b87913e70ec 100644 --- a/testing/mozharness/configs/mediatests/buildbot_posix_config.py +++ b/testing/mozharness/configs/mediatests/buildbot_posix_config.py @@ -12,6 +12,7 @@ config = { 'python': '/tools/buildbot/bin/python', 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'], 'tooltool.py': "/tools/tooltool.py", + 'gittool.py': os.path.join(external_tools_path, 'gittool.py'), }, "find_links": [ @@ -25,6 +26,7 @@ config = { "default_actions": [ 'clobber', 'read-buildbot-config', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install', @@ -37,6 +39,10 @@ config = { "download_minidump_stackwalk": True, "download_symbols": "ondemand", + "firefox_media_repo": 'https://github.com/mjzffr/firefox-media-tests.git', + "firefox_media_branch": 'master', + "firefox_media_rev": '0830e972e4b95fef3507207fc6bce028da27f2d3', + "suite_definitions": { "media-tests": { "options": [], diff --git a/testing/mozharness/configs/mediatests/buildbot_windows_config.py b/testing/mozharness/configs/mediatests/buildbot_windows_config.py index 8ed0159e563..4eefc2c5a74 100644 --- a/testing/mozharness/configs/mediatests/buildbot_windows_config.py +++ b/testing/mozharness/configs/mediatests/buildbot_windows_config.py @@ -17,6 +17,8 @@ config = { 'mozinstall': ['%s/build/venv/scripts/python' % os.getcwd(), '%s/build/venv/scripts/mozinstall-script.py' % os.getcwd()], 'tooltool.py': [sys.executable, 'C:/mozilla-build/tooltool.py'], + 'gittool.py': [sys.executable, + os.path.join(external_tools_path, 'gittool.py')], 'hgtool.py': [sys.executable, os.path.join(external_tools_path, 'hgtool.py')], @@ -34,6 +36,7 @@ config = { "default_actions": [ 'clobber', 'read-buildbot-config', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install', @@ -47,6 +50,10 @@ config = { "download_minidump_stackwalk": True, "download_symbols": "ondemand", + "firefox_media_repo": 'https://github.com/mjzffr/firefox-media-tests.git', + "firefox_media_branch": 'master', + "firefox_media_rev": '0830e972e4b95fef3507207fc6bce028da27f2d3', + "suite_definitions": { "media-tests": { "options": [], diff --git a/testing/mozharness/configs/mediatests/jenkins_config.py b/testing/mozharness/configs/mediatests/jenkins_config.py index 787746b7f32..e912a0ed9d6 100755 --- a/testing/mozharness/configs/mediatests/jenkins_config.py +++ b/testing/mozharness/configs/mediatests/jenkins_config.py @@ -26,6 +26,10 @@ config = { 'download_symbols': 'ondemand', 'download_tooltool': True, + # Version control information + 'firefox_media_repo': 'https://github.com/mjzffr/firefox-media-tests.git', + 'firefox_media_branch': 'master', + # Default test suite 'test_suite': 'media-tests', @@ -42,6 +46,7 @@ config = { 'default_actions': [ 'clobber', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install', @@ -50,3 +55,18 @@ config = { } +# General local variable overwrite +# Bug 1227079 - Python executable eeded to get it executed on Windows +if platform.system() == 'windows': + gittool = [ + sys.executable, + os.path.join(external_tools_path, 'gittool.py') + ] +else: + gittool = os.path.join(external_tools_path, 'gittool.py') + +exes = { + 'gittool.py' : gittool, +} + +config['exes'] = exes diff --git a/testing/mozharness/mozharness/mozilla/testing/firefox_media_tests.py b/testing/mozharness/mozharness/mozilla/testing/firefox_media_tests.py index 7ddd010202d..027f6633c20 100644 --- a/testing/mozharness/mozharness/mozilla/testing/firefox_media_tests.py +++ b/testing/mozharness/mozharness/mozilla/testing/firefox_media_tests.py @@ -57,6 +57,20 @@ media_test_config_options = [ "default": False, "help": "Enable e10s when running marionette tests." }], + [['--firefox-media-repo'], { + 'dest': 'firefox_media_repo', + 'default': 'https://github.com/mjzffr/firefox-media-tests.git', + 'help': 'which firefox_media_tests repo to use', + }], + [['--firefox-media-branch'], { + 'dest': 'firefox_media_branch', + 'default': 'master', + 'help': 'which branch to use for firefox_media_tests', + }], + [['--firefox-media-rev'], { + 'dest': 'firefox_media_rev', + 'help': 'which firefox_media_tests revision to use', + }], [["--suite"], {"action": "store", "dest": "test_suite", @@ -113,6 +127,7 @@ class FirefoxMediaTestsBase(TestingMixin, VCSToolsScript): self.config_options = media_test_config_options + (config_options or []) actions = [ 'clobber', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install', @@ -140,60 +155,72 @@ class FirefoxMediaTestsBase(TestingMixin, VCSToolsScript): @PreScriptAction('create-virtualenv') def _pre_create_virtualenv(self, action): dirs = self.query_abs_dirs() + marionette_requirements = os.path.join(dirs['abs_test_install_dir'], + 'config', + 'marionette_requirements.txt') + if os.access(marionette_requirements, os.F_OK): + self.register_virtualenv_module(requirements=[marionette_requirements], + two_pass=True) - media_tests_requirements = os.path.join(dirs['abs_test_install_dir'], - 'config', - 'external-media-tests-requirements.txt') + media_tests_requirements = os.path.join(dirs['firefox_media_dir'], + 'requirements.txt') if os.access(media_tests_requirements, os.F_OK): self.register_virtualenv_module(requirements=[media_tests_requirements], two_pass=True) def download_and_extract(self): - """Overriding method from TestingMixin for more specific behavior. + """Overriding method from TestingMixin until firefox-media-tests are in tree. - We use the test_packages_url command line argument to check where to get the - harness, puppeteer, and tests from and how to set them up. + Right now we only care about the installer and symbolds. """ - target_unzip_dirs = ['config/*', - 'external-media-tests/*', - 'marionette/*', - 'mozbase/*', - 'puppeteer/*', - 'tools/wptserve/*', - ] - super(FirefoxMediaTestsBase, self).download_and_extract( - target_unzip_dirs=target_unzip_dirs) + self._download_installer() + + if self.config.get('download_symbols'): + self._download_and_extract_symbols() def query_abs_dirs(self): if self.abs_dirs: return self.abs_dirs abs_dirs = super(FirefoxMediaTestsBase, self).query_abs_dirs() dirs = { - 'abs_test_install_dir' : os.path.join(abs_dirs['abs_work_dir'], - 'tests') + 'firefox_media_dir': os.path.join(abs_dirs['abs_work_dir'], + 'firefox-media-tests') } - dirs['external-media-tests'] = os.path.join(dirs['abs_test_install_dir'], - 'external-media-tests') + dirs['abs_test_install_dir'] = os.path.join(abs_dirs['abs_work_dir'], + 'tests') abs_dirs.update(dirs) self.abs_dirs = abs_dirs return self.abs_dirs + @PreScriptAction('checkout') + def _pre_checkout(self, action): + super(FirefoxMediaTestsBase, self)._pre_checkout(action) + c = self.config + dirs = self.query_abs_dirs() + self.firefox_media_vc = { + 'branch': c['firefox_media_branch'], + 'repo': c['firefox_media_repo'], + 'dest': dirs['firefox_media_dir'], + } + if 'firefox-media-rev' in c: + self.firefox_media_vc['revision'] = c['firefox_media_rev'] + + def checkout(self): + self.vcs_checkout(vcs='gittool', **self.firefox_media_vc) + def _query_cmd(self): """ Determine how to call firefox-media-tests """ if not self.binary_path: self.fatal("Binary path could not be determined. " "Should be set by default during 'install' action.") dirs = self.query_abs_dirs() - - import external_media_harness.runtests - - cmd = [ - self.query_python_path(), - external_media_harness.runtests.__file__ - ] - + venv_python_path = self.query_python_path() + runner_script = os.path.join(dirs['firefox_media_dir'], + 'media_test_harness', + 'runtests.py') + cmd = [venv_python_path, runner_script] cmd += ['--binary', self.binary_path] if self.symbols_path: cmd += ['--symbols-path', self.symbols_path] @@ -211,8 +238,8 @@ class FirefoxMediaTestsBase(TestingMixin, VCSToolsScript): self.fatal("%s is not defined in the config!" % test_suite) test_manifest = None if test_suite != 'media-youtube-tests' else \ - os.path.join(dirs['external-media-tests'], - 'external-media-tests', + os.path.join(dirs['firefox_media_dir'], + 'firefox_media_tests', 'playback', 'youtube', 'manifest.ini') config_fmt_args = { 'test_manifest': test_manifest, diff --git a/testing/mozharness/scripts/firefox_media_tests_buildbot.py b/testing/mozharness/scripts/firefox_media_tests_buildbot.py index 17b830f0f16..c4491c63d70 100644 --- a/testing/mozharness/scripts/firefox_media_tests_buildbot.py +++ b/testing/mozharness/scripts/firefox_media_tests_buildbot.py @@ -37,6 +37,7 @@ class FirefoxMediaTestsBuildbot(FirefoxMediaTestsBase, BlobUploadMixin): config_options=config_options, all_actions=['clobber', 'read-buildbot-config', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install', diff --git a/testing/mozharness/scripts/firefox_media_tests_jenkins.py b/testing/mozharness/scripts/firefox_media_tests_jenkins.py index 2b887a619ba..3192874a35a 100755 --- a/testing/mozharness/scripts/firefox_media_tests_jenkins.py +++ b/testing/mozharness/scripts/firefox_media_tests_jenkins.py @@ -26,6 +26,7 @@ class FirefoxMediaTestsJenkins(FirefoxMediaTestsBase): def __init__(self): super(FirefoxMediaTestsJenkins, self).__init__( all_actions=['clobber', + 'checkout', 'download-and-extract', 'create-virtualenv', 'install',