From e9cb9d391fa20eeb7a1aa88c055e32e00a49acef Mon Sep 17 00:00:00 2001 From: Rob Wood Date: Thu, 19 Oct 2017 16:24:48 -0400 Subject: [PATCH] Bug 1369537 - preparing for talos on tc win vm; r=jmaher MozReview-Commit-ID: KZbPBClEzHI --HG-- extra : rebase_source : f6f29f94f7fe9c017cd11b7465321a849b1da6ad --- .../configs/talos/windows_vm_config.py | 59 +++++++++++++++++++ .../mozharness/mozilla/testing/talos.py | 14 ++++- 2 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 testing/mozharness/configs/talos/windows_vm_config.py diff --git a/testing/mozharness/configs/talos/windows_vm_config.py b/testing/mozharness/configs/talos/windows_vm_config.py new file mode 100644 index 000000000000..5487e3e44477 --- /dev/null +++ b/testing/mozharness/configs/talos/windows_vm_config.py @@ -0,0 +1,59 @@ +import os +import socket +import sys + +PYTHON = sys.executable +PYTHON_DLL = 'c:/mozilla-build/python27/python27.dll' +VENV_PATH = os.path.join(os.getcwd(), 'build/venv') + +config = { + "log_name": "talos", + "buildbot_json_path": "buildprops.json", + "installer_path": "installer.exe", + "virtualenv_path": VENV_PATH, + "virtualenv_python_dll": PYTHON_DLL, + "pip_index": False, + "find_links": [ + "http://pypi.pvt.build.mozilla.org/pub", + "http://pypi.pub.build.mozilla.org/pub", + ], + "virtualenv_modules": ['pywin32', 'talos', 'mozinstall'], + "exes": { + 'python': PYTHON, + 'virtualenv': [PYTHON, os.path.join(os.path.dirname(sys.executable), 'Lib', 'site-packages', 'virtualenv.py')], + 'easy_install': ['%s/scripts/python' % VENV_PATH, + '%s/scripts/easy_install-2.7-script.py' % VENV_PATH], + 'mozinstall': ['%s/scripts/python' % VENV_PATH, + '%s/scripts/mozinstall-script.py' % VENV_PATH], + 'hg': os.path.join(os.environ['PROGRAMFILES'], 'Mercurial', 'hg'), + 'tooltool.py': [PYTHON, os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')], + }, + "title": socket.gethostname().split('.')[0], + "default_actions": [ + "clobber", + "read-buildbot-config", + "download-and-extract", + "populate-webroot", + "create-virtualenv", + "install", + "setup-mitmproxy", + "run-tests", + ], + "default_blob_upload_servers": [ + "https://blobupload.elasticbeanstalk.com", + ], + "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"), + "metro_harness_path_frmt": "%(metro_base_path)s/metro/metrotestharness.exe", + "download_minidump_stackwalk": True, + "tooltool_cache": os.path.join('c:\\', 'build', 'tooltool_cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest", + "python3_manifest": { + "win32": "python3.manifest", + "win64": "python3_x64.manifest", + }, + "env": { + # python3 requires C runtime, found in firefox installation; see bug 1361732 + "PATH": "%(PATH)s;c:\\slave\\test\\build\\application\\firefox;" + } +} diff --git a/testing/mozharness/mozharness/mozilla/testing/talos.py b/testing/mozharness/mozharness/mozilla/testing/talos.py index be0c51e6bcd3..822744dbc5fd 100755 --- a/testing/mozharness/mozharness/mozilla/testing/talos.py +++ b/testing/mozharness/mozharness/mozilla/testing/talos.py @@ -142,6 +142,12 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin, "default": 0, "help": "The interval between samples taken by the profiler (milliseconds)" }], + [["--e10s"], { + "dest": "e10s", + "action": "store_true", + "default": False, + "help": "we should have --disable-e10s, but instead we assume non-e10s and use --e10s to help" + }], [["--enable-stylo"], { "action": "store_true", "dest": "enable_stylo", @@ -329,6 +335,8 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin, kw_options = {'executablePath': binary_path} if 'suite' in self.config: kw_options['suite'] = self.config['suite'] + if self.config.get('e10s', False): + kw_options['suite'] = "%s-e10s" % self.config['suite'] if self.config.get('title'): kw_options['title'] = self.config['title'] if self.config.get('branch'): @@ -371,7 +379,7 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin, ) # need to determine if talos pageset is required to be downloaded - if self.config.get('run_local'): + if self.config.get('run_local') and 'talos_extra_options' in self.config: # talos initiated locally, get and verify test/suite from cmd line self.talos_path = os.path.dirname(self.talos_json) if '-a' in self.config['talos_extra_options'] or '--activeTests' in self.config['talos_extra_options']: @@ -392,7 +400,7 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin, # now that have the suite name, check if pageset is required, if so download it # the --no-download option will override this if self.query_pagesets_name(): - if '--no-download' not in self.config['talos_extra_options']: + if '--no-download' not in self.config.get('talos_extra_options', []): self.info("Downloading pageset with tooltool...") self.src_talos_webdir = os.path.join(self.talos_path, 'talos') src_talos_pageset = os.path.join(self.src_talos_webdir, 'tests') @@ -449,8 +457,8 @@ class Talos(TestingMixin, MercurialScript, BlobUploadMixin, TooltoolMixin, def install_mitmproxy(self): """Install the mitmproxy tool into the Python 3.x env""" + self.info("Installing mitmproxy") if 'win' in self.platform_name(): - self.info("Installing mitmproxy") self.py3_install_modules(modules=['mitmproxy']) self.mitmdump = os.path.join(self.py3_path_to_executables(), 'mitmdump') else: