Bug 1366355 - Expand talos tp6 suite to linux x64; r=jmaher

MozReview-Commit-ID: CXMTg3SImxz

--HG--
extra : rebase_source : 871f6da9418575f209236886a3ecfc8e09322b69
This commit is contained in:
Rob Wood 2017-10-05 14:59:05 -04:00
Родитель 6ed989d34c
Коммит 800dc9f11f
6 изменённых файлов: 45 добавлений и 29 удалений

Просмотреть файл

@ -66,6 +66,8 @@ talos:
- talos-tp5o
- talos-perf-reftest
- talos-perf-reftest-singletons
- talos-tp6
- talos-tp6-stylo-threads
awsy:
- awsy
@ -144,6 +146,7 @@ linux-talos-stylo-disabled:
- talos-tp5o-stylo-disabled
- talos-perf-reftest-stylo-disabled
- talos-perf-reftest-singletons-stylo-disabled
- talos-tp6-stylo-disabled
windows-reftest-gpu:
- reftest-gpu

Просмотреть файл

@ -1757,9 +1757,9 @@ talos-tp6:
treeherder-symbol: tc-T(tp6)
run-on-projects:
by-test-platform:
windows.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try', 'date']
windows.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
macosx.*: ['mozilla-beta', 'autoland', 'try']
default: []
default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
mozharness:
script: talos_script.py
@ -1787,7 +1787,7 @@ talos-tp6-stylo-disabled:
by-test-platform:
windows.*: ['mozilla-beta', 'mozilla-central', 'try']
macosx.*: ['mozilla-beta', 'mozilla-central', 'try']
default: []
default: ['mozilla-beta', 'mozilla-central', 'try']
max-run-time: 3600
mozharness:
script: talos_script.py
@ -1813,7 +1813,7 @@ talos-tp6-stylo-threads:
by-test-platform:
windows.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
macosx.*: ['mozilla-beta', 'autoland', 'try']
default: []
default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
mozharness:
script: talos_script.py
@ -1836,7 +1836,7 @@ talos-xperf:
treeherder-symbol: tc-T(x)
run-on-projects:
by-test-platform:
windows7-32.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try', 'date']
windows7-32.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
default: []
max-run-time: 3600
mozharness:

Просмотреть файл

@ -417,12 +417,9 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin,
self.info("Skipping: mitmproxy is not required")
return
# tp6 is supported in production only on win and macosx
os_name = self.platform_name()
if 'win' not in os_name and os_name != 'macosx':
self.fatal("Aborting: this test is not supported on this platform.")
# on windows we need to install a pytyon 3 virtual env; on macosx we
# on windows we need to install a pytyon 3 virtual env; on macosx and linux we
# use a mitmdump pre-built binary that doesn't need an external python 3
if 'win' in os_name:
# setup python 3.x virtualenv
@ -457,16 +454,20 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin,
self.py3_install_modules(modules=['mitmproxy'])
self.mitmdump = os.path.join(self.py3_path_to_executables(), 'mitmdump')
else:
# on macosx we use a prebuilt mitmproxy release binary
# on macosx and linux64 we use a prebuilt mitmproxy release binary
mitmproxy_path = os.path.join(self.talos_path, 'talos', 'mitmproxy')
self.mitmdump = os.path.join(mitmproxy_path, 'mitmdump')
if not os.path.exists(self.mitmdump):
# download the mitmproxy release binary; will be overridden by the --no-download
if '--no-download' not in self.config['talos_extra_options']:
self.query_mitmproxy_rel_bin('osx')
if 'osx' in self.platform_name():
_platform = 'osx'
else:
_platform = 'linux64'
self.query_mitmproxy_rel_bin(_platform)
if self.mitmproxy_rel_bin is None:
self.fatal("Aborting: mitmproxy_release_bin_osx not found in talos.json")
self.download_mitmproxy_binary('osx')
self.download_mitmproxy_binary(_platform)
else:
self.info("Not downloading mitmproxy rel binary because no-download was specified")
self.info('The mitmdump macosx binary is found at: %s' % self.mitmdump)
@ -487,15 +488,18 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin,
dest = os.path.join(self.talos_path, 'talos', 'mitmproxy')
_manifest = "mitmproxy-rel-bin-%s.manifest" % platform
manifest_file = os.path.join(self.talos_path, 'talos', 'mitmproxy', _manifest)
self.tooltool_fetch(
manifest_file,
output_dir=dest,
cache=self.config.get('tooltool_cache')
)
archive = os.path.join(dest, self.mitmproxy_rel_bin)
tar = self.query_exe('tar')
unzip_cmd = [tar, '-xvzf', archive, '-C', dest]
self.run_command(unzip_cmd, halt_on_failure=True)
if platform in ['osx', 'linux64']:
self.tooltool_fetch(
manifest_file,
output_dir=dest,
cache=self.config.get('tooltool_cache')
)
archive = os.path.join(dest, self.mitmproxy_rel_bin)
tar = self.query_exe('tar')
unzip_cmd = [tar, '-xvzf', archive, '-C', dest]
self.run_command(unzip_cmd, halt_on_failure=True)
def query_mitmproxy_recording_set(self):
"""Mitmproxy requires external playback archives to be downloaded and extracted"""

Просмотреть файл

@ -112,6 +112,7 @@
"tp6-e10s": {
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
"mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
"talos_options": [
"--mitmproxy",
@ -122,6 +123,7 @@
"tp6-stylo-disabled-e10s": {
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
"mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
"talos_options": [
"--disable-stylo",
@ -133,6 +135,7 @@
"tp6-stylo-threads-e10s": {
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
"mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
"talos_options": [
"--stylo-threads=1",

Просмотреть файл

@ -0,0 +1,9 @@
[
{
"filename": "mitmproxy-2.0.2-linux.tar.gz",
"size": 48997542,
"digest": "b032e04b8763206a19f80b78062efa59dc901ad32fd8d6cf2d20e22744711352da61e75d93a0d93d645179153534f72a154f73432837db415c9b0cd9d981f012",
"algorithm": "sha512",
"unpack": false
}
]

Просмотреть файл

@ -132,13 +132,10 @@ def start_mitmproxy_playback(mitmdump_path,
sys.path.insert(1, mitmdump_path)
# mitmproxy needs some DLL's that are a part of Firefox itself, so add to path
env["PATH"] = os.path.dirname(browser_path) + ";" + env["PATH"]
elif mozinfo.os == 'mac':
else:
# mac and linux
param2 = param + ' ' + ' '.join(mitmproxy_recordings)
env["PATH"] = os.path.dirname(browser_path)
else:
# TODO: support other platforms, Bug 1366355
LOG.error('Aborting: talos mitmproxy is currently only supported on Windows and Mac')
sys.exit()
command = [mitmdump_path, '-k', '-s', param2]
@ -160,10 +157,10 @@ def start_mitmproxy_playback(mitmdump_path,
def stop_mitmproxy_playback(mitmproxy_proc):
"""Stop the mitproxy server playback"""
LOG.info("Stopping mitmproxy playback, klling process %d" % mitmproxy_proc.pid)
if mozinfo.os == 'mac':
mitmproxy_proc.terminate()
else:
if mozinfo.os == 'win':
mitmproxy_proc.kill()
else:
mitmproxy_proc.terminate()
time.sleep(10)
if mitmproxy_proc.pid in psutil.pids():
# I *think* we can still continue, as process will be automatically