mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-29 20:07:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
103
dom/media/test/external/external_media_harness/runtests.py
vendored
Normal file
103
dom/media/test/external/external_media_harness/runtests.py
vendored
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import mozlog
|
||||
|
||||
from manifestparser import read_ini
|
||||
from marionette_harness import (
|
||||
BaseMarionetteTestRunner,
|
||||
BaseMarionetteArguments,
|
||||
BrowserMobProxyArguments,
|
||||
)
|
||||
from marionette_harness.runtests import MarionetteHarness, cli as mn_cli
|
||||
|
||||
import external_media_tests
|
||||
from testcase import MediaTestCase
|
||||
from external_media_tests.media_utils.video_puppeteer import debug_script
|
||||
|
||||
|
||||
class MediaTestArgumentsBase(object):
|
||||
name = 'Firefox Media Tests'
|
||||
args = [
|
||||
[['--urls'], {
|
||||
'help': 'ini file of urls to make available to all tests',
|
||||
'default': os.path.join(external_media_tests.urls, 'default.ini'),
|
||||
}],
|
||||
]
|
||||
|
||||
def verify_usage_handler(self, args):
|
||||
if args.urls:
|
||||
if not os.path.isfile(args.urls):
|
||||
raise ValueError('--urls must provide a path to an ini file')
|
||||
else:
|
||||
path = os.path.abspath(args.urls)
|
||||
args.video_urls = MediaTestArgumentsBase.get_urls(path)
|
||||
if not args.video_urls:
|
||||
raise ValueError('list of video URLs cannot be empty')
|
||||
|
||||
def parse_args_handler(self, args):
|
||||
if not args.tests:
|
||||
args.tests = [external_media_tests.manifest]
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get_urls(manifest):
|
||||
with open(manifest, 'r'):
|
||||
return [line[0] for line in read_ini(manifest)]
|
||||
|
||||
|
||||
class MediaTestArguments(BaseMarionetteArguments):
|
||||
def __init__(self, **kwargs):
|
||||
BaseMarionetteArguments.__init__(self, **kwargs)
|
||||
self.register_argument_container(MediaTestArgumentsBase())
|
||||
self.register_argument_container(BrowserMobProxyArguments())
|
||||
|
||||
|
||||
class MediaTestRunner(BaseMarionetteTestRunner):
|
||||
def __init__(self, **kwargs):
|
||||
BaseMarionetteTestRunner.__init__(self, **kwargs)
|
||||
if not self.server_root:
|
||||
self.server_root = external_media_tests.resources
|
||||
# pick up prefs from marionette_driver.geckoinstance.DesktopInstance
|
||||
self.app = 'fxdesktop'
|
||||
self.test_handlers = [MediaTestCase]
|
||||
|
||||
# Used in HTML report (--log-html)
|
||||
def gather_media_debug(test, status):
|
||||
rv = {}
|
||||
marionette = test._marionette_weakref()
|
||||
|
||||
if marionette.session is not None:
|
||||
try:
|
||||
with marionette.using_context(marionette.CONTEXT_CHROME):
|
||||
debug_lines = marionette.execute_script(debug_script)
|
||||
if debug_lines:
|
||||
name = 'mozMediaSourceObject.mozDebugReaderData'
|
||||
rv[name] = '\n'.join(debug_lines)
|
||||
else:
|
||||
logger = mozlog.get_default_logger()
|
||||
logger.info('No data available about '
|
||||
'mozMediaSourceObject')
|
||||
except:
|
||||
logger = mozlog.get_default_logger()
|
||||
logger.warning('Failed to gather test failure media debug',
|
||||
exc_info=True)
|
||||
return rv
|
||||
|
||||
self.result_callbacks.append(gather_media_debug)
|
||||
|
||||
|
||||
class FirefoxMediaHarness(MarionetteHarness):
|
||||
def parse_args(self, *args, **kwargs):
|
||||
return MarionetteHarness.parse_args(self, {'mach': sys.stdout})
|
||||
|
||||
|
||||
def cli():
|
||||
mn_cli(MediaTestRunner, MediaTestArguments, FirefoxMediaHarness)
|
||||
|
||||
if __name__ == '__main__':
|
||||
cli()
|
||||
Loading…
Add table
Add a link
Reference in a new issue