Bug 1521879 - Part 7: Create new CI jobs for media mochitests with socket process enabled. r=ahal

Differential Revision: https://phabricator.services.mozilla.com/D17942

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Byron Campen [:bwc] 2019-02-25 21:52:13 +00:00
parent 7cb968d18c
commit e1a33816af
6 changed files with 69 additions and 5 deletions

View File

@ -126,13 +126,13 @@ skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emula
[test_peerConnection_checkPacketDumpHook.html]
skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
[test_peerConnection_basicAudioNATSrflx.html]
skip-if = toolkit == 'android' || (verify && (os == 'linux')) # websockets don't work on android (bug 1266217)
skip-if = toolkit == 'android' || (verify && (os == 'linux')) || socketprocess_e10s # websockets don't work on android (bug 1266217, IPV6 is busted in try which causes timeouts in socket process case (bug 1521117))
[test_peerConnection_basicAudioNATRelay.html]
skip-if = toolkit == 'android' || (verify && debug && (os == 'linux')) # websockets don't work on android (bug 1266217)
skip-if = toolkit == 'android' || (verify && debug && (os == 'linux')) || socketprocess_e10s # websockets don't work on android (bug 1266217, IPV6 is busted in try which causes timeouts in socket process case (bug 1521117))
[test_peerConnection_basicAudioNATRelayTCP.html]
skip-if = toolkit == 'android' # websockets don't work on android (bug 1266217)
skip-if = toolkit == 'android' || socketprocess_e10s # websockets don't work on android (bug 1266217, IPV6 is busted in try which causes timeouts in socket process case (bug 1521117))
[test_peerConnection_basicAudioNATRelayTLS.html]
skip-if = true # need pyopenssl on builders, see bug 1323439 # toolkit == 'android' # websockets don't work on android (bug 1266217)
skip-if = true # need pyopenssl on builders, see bug 1323439 # toolkit == 'android' || socketprocess_e10s # websockets don't work on android (bug 1266217), IPV6 is busted in try which causes timeouts in socket process case (bug 1521117)
[test_peerConnection_basicAudioRequireEOC.html]
skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
[test_peerConnection_basicAudioPcmaPcmuOnly.html]
@ -347,7 +347,7 @@ skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emula
[test_peerConnection_stats.html]
skip-if = toolkit == 'android' # android(Bug 1189784, timeouts on 4.3 emulator, Bug 1373858)
[test_peerConnection_stats_relayProtocol.html]
skip-if = toolkit == 'android' # android(Bug 1189784, timeouts on 4.3 emulator, Bug 1373858)
skip-if = toolkit == 'android' || socketprocess_e10s # android(Bug 1189784, timeouts on 4.3 emulator, Bug 1373858, Bug 1521117)
[test_peerConnection_sender_and_receiver_stats.html]
skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
[test_peerConnection_trackless_sender_stats.html]

View File

@ -18,7 +18,9 @@ treeherder:
'Fxfn-r-e10s': 'Firefox functional tests (remote) with e10s'
'M': 'Mochitests'
'M-sw': 'Mochitests with serviceworker redesign'
'M-spi': 'Mochitests with socket process'
'M-e10s': 'Mochitests with e10s'
'M-e10s-spi': 'Mochitests with socket process and e10s'
'M-sw-e10s': 'Mochitests with serviceworker redesign and e10s'
'M-V': 'Mochitests on Valgrind'
'MSI': 'Repack installers into MSIs'

View File

@ -7,6 +7,7 @@ job-defaults:
by-test-platform:
linux64/debug: both
default: false
socketprocess-e10s: false
mozharness:
script:
by-test-platform:
@ -283,6 +284,10 @@ mochitest-media:
macosx64-ccov/debug: 7200
default: 5400
run-on-projects: built-projects
socketprocess-e10s:
by-test-platform:
android.*: false
default: both
loopback-video: true
virtualization:
by-test-platform:

View File

@ -136,6 +136,12 @@ serviceworker_e10s
For test suites which distinguish whether or not they run with the serviceworker
e10s redesign enabled.
socketprocess_e10s
==================
For test suites which distinguish whether or not they run with the socket
process enabled.
e10s
====

View File

@ -223,6 +223,14 @@ test_description_schema = Schema({
'test-platform', 'project',
Any(bool, 'both')),
# Whether to run this task with the socket process enabled (desktop-test
# only). If 'both', run one task with and one task without. Tasks with
# this enabled have have "-spi" appended to the test name and treeherder
# group.
Optional('socketprocess-e10s'): optionally_keyed_by(
'test-platform', 'project',
Any(bool, 'both')),
# Whether the task should run with WebRender enabled or not.
Optional('webrender'): bool,
@ -484,6 +492,7 @@ def set_defaults(config, tests):
test.setdefault('docker-image', {'in-tree': 'desktop1604-test'})
test.setdefault('checkout', False)
test.setdefault('serviceworker-e10s', False)
test.setdefault('socketprocess-e10s', False)
test.setdefault('require-signed-extensions', False)
test['mozharness'].setdefault('extra-options', [])
@ -725,6 +734,7 @@ def handle_keyed_by(config, tests):
'chunks',
'serviceworker-e10s',
'e10s',
'socketprocess-e10s',
'suite',
'run-on-projects',
'os-groups',
@ -854,6 +864,10 @@ def handle_run_on_projects(config, tests):
@transforms.add
def split_serviceworker_e10s(config, tests):
for test in tests:
if test['attributes'].get('socketprocess_e10s'):
yield test
continue
sw = test.pop('serviceworker-e10s')
test['serviceworker-e10s'] = False
@ -912,6 +926,39 @@ def split_e10s(config, tests):
yield test
@transforms.add
def split_socketprocess_e10s(config, tests):
for test in tests:
if test['attributes'].get('serviceworker_e10s'):
yield test
continue
sw = test.pop('socketprocess-e10s')
test['socketprocess-e10s'] = False
test['attributes']['socketprocess_e10s'] = False
if sw == 'both':
yield copy.deepcopy(test)
sw = True
if sw:
test['description'] += " with socket process enabled"
test['test-name'] += '-spi'
test['try-name'] += '-spi'
test['attributes']['socketprocess_e10s'] = True
group, symbol = split_symbol(test['treeherder-symbol'])
if group != '?':
group += '-spi'
else:
symbol += '-spi'
test['treeherder-symbol'] = join_symbol(group, symbol)
test['mozharness']['extra-options'].append(
'--setpref="media.peerconnection.mtransport_process=true"')
test['mozharness']['extra-options'].append(
'--setpref="network.process.enabled=true"')
yield test
@transforms.add
def split_chunks(config, tests):
"""Based on the 'chunks' key, split tests up into chunks by duplicating

View File

@ -2551,6 +2551,8 @@ toolbar#nav-bar {
"headless": options.headless,
"serviceworker_e10s": self.extraPrefs.get(
'dom.serviceWorkers.parent_intercept', False),
"socketprocess_e10s": self.extraPrefs.get(
'network.process.enabled', False),
})
self.setTestRoot(options)
@ -2777,6 +2779,8 @@ toolbar#nav-bar {
self.log.info("runtests.py | Running with e10s: {}".format(options.e10s))
self.log.info("runtests.py | Running with serviceworker_e10s: {}".format(
mozinfo.info.get('serviceworker_e10s', False)))
self.log.info("runtests.py | Running with socketprocess_e10s: {}".format(
mozinfo.info.get('socketprocess_e10s', False)))
self.log.info("runtests.py | Running tests: start.\n")
ret, _ = self.runApp(
testURL,