зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
6ed989d34c
Коммит
800dc9f11f
|
@ -66,6 +66,8 @@ talos:
|
||||||
- talos-tp5o
|
- talos-tp5o
|
||||||
- talos-perf-reftest
|
- talos-perf-reftest
|
||||||
- talos-perf-reftest-singletons
|
- talos-perf-reftest-singletons
|
||||||
|
- talos-tp6
|
||||||
|
- talos-tp6-stylo-threads
|
||||||
|
|
||||||
awsy:
|
awsy:
|
||||||
- awsy
|
- awsy
|
||||||
|
@ -144,6 +146,7 @@ linux-talos-stylo-disabled:
|
||||||
- talos-tp5o-stylo-disabled
|
- talos-tp5o-stylo-disabled
|
||||||
- talos-perf-reftest-stylo-disabled
|
- talos-perf-reftest-stylo-disabled
|
||||||
- talos-perf-reftest-singletons-stylo-disabled
|
- talos-perf-reftest-singletons-stylo-disabled
|
||||||
|
- talos-tp6-stylo-disabled
|
||||||
|
|
||||||
windows-reftest-gpu:
|
windows-reftest-gpu:
|
||||||
- reftest-gpu
|
- reftest-gpu
|
||||||
|
|
|
@ -1757,9 +1757,9 @@ talos-tp6:
|
||||||
treeherder-symbol: tc-T(tp6)
|
treeherder-symbol: tc-T(tp6)
|
||||||
run-on-projects:
|
run-on-projects:
|
||||||
by-test-platform:
|
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']
|
macosx.*: ['mozilla-beta', 'autoland', 'try']
|
||||||
default: []
|
default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
|
||||||
max-run-time: 3600
|
max-run-time: 3600
|
||||||
mozharness:
|
mozharness:
|
||||||
script: talos_script.py
|
script: talos_script.py
|
||||||
|
@ -1787,7 +1787,7 @@ talos-tp6-stylo-disabled:
|
||||||
by-test-platform:
|
by-test-platform:
|
||||||
windows.*: ['mozilla-beta', 'mozilla-central', 'try']
|
windows.*: ['mozilla-beta', 'mozilla-central', 'try']
|
||||||
macosx.*: ['mozilla-beta', 'mozilla-central', 'try']
|
macosx.*: ['mozilla-beta', 'mozilla-central', 'try']
|
||||||
default: []
|
default: ['mozilla-beta', 'mozilla-central', 'try']
|
||||||
max-run-time: 3600
|
max-run-time: 3600
|
||||||
mozharness:
|
mozharness:
|
||||||
script: talos_script.py
|
script: talos_script.py
|
||||||
|
@ -1813,7 +1813,7 @@ talos-tp6-stylo-threads:
|
||||||
by-test-platform:
|
by-test-platform:
|
||||||
windows.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
|
windows.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
|
||||||
macosx.*: ['mozilla-beta', 'autoland', 'try']
|
macosx.*: ['mozilla-beta', 'autoland', 'try']
|
||||||
default: []
|
default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
|
||||||
max-run-time: 3600
|
max-run-time: 3600
|
||||||
mozharness:
|
mozharness:
|
||||||
script: talos_script.py
|
script: talos_script.py
|
||||||
|
@ -1836,7 +1836,7 @@ talos-xperf:
|
||||||
treeherder-symbol: tc-T(x)
|
treeherder-symbol: tc-T(x)
|
||||||
run-on-projects:
|
run-on-projects:
|
||||||
by-test-platform:
|
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: []
|
default: []
|
||||||
max-run-time: 3600
|
max-run-time: 3600
|
||||||
mozharness:
|
mozharness:
|
||||||
|
|
|
@ -417,12 +417,9 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin,
|
||||||
self.info("Skipping: mitmproxy is not required")
|
self.info("Skipping: mitmproxy is not required")
|
||||||
return
|
return
|
||||||
|
|
||||||
# tp6 is supported in production only on win and macosx
|
|
||||||
os_name = self.platform_name()
|
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
|
# use a mitmdump pre-built binary that doesn't need an external python 3
|
||||||
if 'win' in os_name:
|
if 'win' in os_name:
|
||||||
# setup python 3.x virtualenv
|
# setup python 3.x virtualenv
|
||||||
|
@ -457,16 +454,20 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin,
|
||||||
self.py3_install_modules(modules=['mitmproxy'])
|
self.py3_install_modules(modules=['mitmproxy'])
|
||||||
self.mitmdump = os.path.join(self.py3_path_to_executables(), 'mitmdump')
|
self.mitmdump = os.path.join(self.py3_path_to_executables(), 'mitmdump')
|
||||||
else:
|
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')
|
mitmproxy_path = os.path.join(self.talos_path, 'talos', 'mitmproxy')
|
||||||
self.mitmdump = os.path.join(mitmproxy_path, 'mitmdump')
|
self.mitmdump = os.path.join(mitmproxy_path, 'mitmdump')
|
||||||
if not os.path.exists(self.mitmdump):
|
if not os.path.exists(self.mitmdump):
|
||||||
# download the mitmproxy release binary; will be overridden by the --no-download
|
# download the mitmproxy release binary; will be overridden by the --no-download
|
||||||
if '--no-download' not in self.config['talos_extra_options']:
|
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:
|
if self.mitmproxy_rel_bin is None:
|
||||||
self.fatal("Aborting: mitmproxy_release_bin_osx not found in talos.json")
|
self.fatal("Aborting: mitmproxy_release_bin_osx not found in talos.json")
|
||||||
self.download_mitmproxy_binary('osx')
|
self.download_mitmproxy_binary(_platform)
|
||||||
else:
|
else:
|
||||||
self.info("Not downloading mitmproxy rel binary because no-download was specified")
|
self.info("Not downloading mitmproxy rel binary because no-download was specified")
|
||||||
self.info('The mitmdump macosx binary is found at: %s' % self.mitmdump)
|
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')
|
dest = os.path.join(self.talos_path, 'talos', 'mitmproxy')
|
||||||
_manifest = "mitmproxy-rel-bin-%s.manifest" % platform
|
_manifest = "mitmproxy-rel-bin-%s.manifest" % platform
|
||||||
manifest_file = os.path.join(self.talos_path, 'talos', 'mitmproxy', _manifest)
|
manifest_file = os.path.join(self.talos_path, 'talos', 'mitmproxy', _manifest)
|
||||||
self.tooltool_fetch(
|
|
||||||
manifest_file,
|
if platform in ['osx', 'linux64']:
|
||||||
output_dir=dest,
|
self.tooltool_fetch(
|
||||||
cache=self.config.get('tooltool_cache')
|
manifest_file,
|
||||||
)
|
output_dir=dest,
|
||||||
archive = os.path.join(dest, self.mitmproxy_rel_bin)
|
cache=self.config.get('tooltool_cache')
|
||||||
tar = self.query_exe('tar')
|
)
|
||||||
unzip_cmd = [tar, '-xvzf', archive, '-C', dest]
|
|
||||||
self.run_command(unzip_cmd, halt_on_failure=True)
|
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):
|
def query_mitmproxy_recording_set(self):
|
||||||
"""Mitmproxy requires external playback archives to be downloaded and extracted"""
|
"""Mitmproxy requires external playback archives to be downloaded and extracted"""
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
"tp6-e10s": {
|
"tp6-e10s": {
|
||||||
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
||||||
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
|
"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",
|
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
|
||||||
"talos_options": [
|
"talos_options": [
|
||||||
"--mitmproxy",
|
"--mitmproxy",
|
||||||
|
@ -122,6 +123,7 @@
|
||||||
"tp6-stylo-disabled-e10s": {
|
"tp6-stylo-disabled-e10s": {
|
||||||
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
||||||
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
|
"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",
|
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
|
||||||
"talos_options": [
|
"talos_options": [
|
||||||
"--disable-stylo",
|
"--disable-stylo",
|
||||||
|
@ -133,6 +135,7 @@
|
||||||
"tp6-stylo-threads-e10s": {
|
"tp6-stylo-threads-e10s": {
|
||||||
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
"tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
|
||||||
"mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
|
"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",
|
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
|
||||||
"talos_options": [
|
"talos_options": [
|
||||||
"--stylo-threads=1",
|
"--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)
|
sys.path.insert(1, mitmdump_path)
|
||||||
# mitmproxy needs some DLL's that are a part of Firefox itself, so add to 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"]
|
env["PATH"] = os.path.dirname(browser_path) + ";" + env["PATH"]
|
||||||
elif mozinfo.os == 'mac':
|
else:
|
||||||
|
# mac and linux
|
||||||
param2 = param + ' ' + ' '.join(mitmproxy_recordings)
|
param2 = param + ' ' + ' '.join(mitmproxy_recordings)
|
||||||
env["PATH"] = os.path.dirname(browser_path)
|
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]
|
command = [mitmdump_path, '-k', '-s', param2]
|
||||||
|
|
||||||
|
@ -160,10 +157,10 @@ def start_mitmproxy_playback(mitmdump_path,
|
||||||
def stop_mitmproxy_playback(mitmproxy_proc):
|
def stop_mitmproxy_playback(mitmproxy_proc):
|
||||||
"""Stop the mitproxy server playback"""
|
"""Stop the mitproxy server playback"""
|
||||||
LOG.info("Stopping mitmproxy playback, klling process %d" % mitmproxy_proc.pid)
|
LOG.info("Stopping mitmproxy playback, klling process %d" % mitmproxy_proc.pid)
|
||||||
if mozinfo.os == 'mac':
|
if mozinfo.os == 'win':
|
||||||
mitmproxy_proc.terminate()
|
|
||||||
else:
|
|
||||||
mitmproxy_proc.kill()
|
mitmproxy_proc.kill()
|
||||||
|
else:
|
||||||
|
mitmproxy_proc.terminate()
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
if mitmproxy_proc.pid in psutil.pids():
|
if mitmproxy_proc.pid in psutil.pids():
|
||||||
# I *think* we can still continue, as process will be automatically
|
# I *think* we can still continue, as process will be automatically
|
||||||
|
|
Загрузка…
Ссылка в новой задаче