| Index: tools/auto_bisect/bisect_perf_regression.py
|
| diff --git a/tools/auto_bisect/bisect_perf_regression.py b/tools/auto_bisect/bisect_perf_regression.py
|
| index e80fd43999e03584150e54fe4cd943c9b84485fb..db63bba122194624b1536c4ba8d1bfef619fb539 100755
|
| --- a/tools/auto_bisect/bisect_perf_regression.py
|
| +++ b/tools/auto_bisect/bisect_perf_regression.py
|
| @@ -1322,7 +1322,7 @@ class BisectPerformanceMetrics(object):
|
| # When build archive doesn't exists, post a build request to tryserver
|
| # and wait for the build to be produced.
|
| if not downloaded_file:
|
| - downloaded_file = self.PostBuildRequestAndWait(
|
| + downloaded_file = self._RequestBuildAndWait(
|
| revision, fetch_build=fetch_build_func, patch=patch)
|
| if not downloaded_file:
|
| return False
|
| @@ -1362,13 +1362,12 @@ class BisectPerformanceMetrics(object):
|
| os.remove(downloaded_file)
|
| return False
|
|
|
| - def PostBuildRequestAndWait(self, git_revision, fetch_build, patch=None):
|
| - """POSTs the build request job to the try server instance.
|
| + def _RequestBuildAndWait(self, git_revision, fetch_build, patch=None):
|
| + """Triggers a try job for a build job.
|
|
|
| - A try job build request is posted to tryserver.chromium.perf master,
|
| - and waits for the binaries to be produced and archived on cloud storage.
|
| - Once the build is ready and stored onto cloud, build archive is downloaded
|
| - into the output folder.
|
| + This function prepares and starts a try job on the tryserver.chromium.perf
|
| + master, and waits for the binaries to be produced and archived in cloud
|
| + storage. Once the build is ready it's downloaded.
|
|
|
| Args:
|
| git_revision: A Git hash revision.
|
| @@ -1379,21 +1378,6 @@ class BisectPerformanceMetrics(object):
|
| Downloaded archive file path when requested build exists and download is
|
| successful, otherwise None.
|
| """
|
| - def GetBuilderNameAndBuildTime(target_platform, target_arch='ia32'):
|
| - """Gets builder bot name and build time in seconds based on platform."""
|
| - # Bot names should match the one listed in tryserver.chromium's
|
| - # master.cfg which produces builds for bisect.
|
| - if bisect_utils.IsWindowsHost():
|
| - if bisect_utils.Is64BitWindows() and target_arch == 'x64':
|
| - return ('win_perf_bisect_builder', MAX_WIN_BUILD_TIME)
|
| - return ('win_perf_bisect_builder', MAX_WIN_BUILD_TIME)
|
| - if bisect_utils.IsLinuxHost():
|
| - if target_platform == 'android':
|
| - return ('android_perf_bisect_builder', MAX_LINUX_BUILD_TIME)
|
| - return ('linux_perf_bisect_builder', MAX_LINUX_BUILD_TIME)
|
| - if bisect_utils.IsMacHost():
|
| - return ('mac_perf_bisect_builder', MAX_MAC_BUILD_TIME)
|
| - raise NotImplementedError('Unsupported Platform "%s".' % sys.platform)
|
| if not fetch_build:
|
| return False
|
|
|
| @@ -1406,8 +1390,8 @@ class BisectPerformanceMetrics(object):
|
| source_control.CheckoutFileAtRevision(
|
| bisect_utils.FILE_DEPS, git_revision, cwd=self.src_cwd)
|
|
|
| - bot_name, build_timeout = GetBuilderNameAndBuildTime(
|
| - self.opts.target_platform, self.opts.target_arch)
|
| + bot_name = self._GetBuilderName(self.opts.target_platform)
|
| + build_timeout = self._GetBuilderBuildTime()
|
| target_file = None
|
| try:
|
| # Execute try job request to build revision with patch.
|
| @@ -1423,6 +1407,30 @@ class BisectPerformanceMetrics(object):
|
|
|
| return target_file
|
|
|
| + @staticmethod
|
| + def _GetBuilderName(target_platform):
|
| + """Gets builder bot name and build time in seconds based on platform."""
|
| + if bisect_utils.IsWindowsHost():
|
| + return 'win_perf_bisect_builder'
|
| + if bisect_utils.IsLinuxHost():
|
| + if target_platform == 'android':
|
| + return 'android_perf_bisect_builder'
|
| + return 'linux_perf_bisect_builder'
|
| + if bisect_utils.IsMacHost():
|
| + return 'mac_perf_bisect_builder'
|
| + raise NotImplementedError('Unsupported Platform "%s".' % sys.platform)
|
| +
|
| + @staticmethod
|
| + def _GetBuilderBuildTime():
|
| + """Returns the time to wait for a build after requesting one."""
|
| + if bisect_utils.IsWindowsHost():
|
| + return MAX_WIN_BUILD_TIME
|
| + if bisect_utils.IsLinuxHost():
|
| + return MAX_LINUX_BUILD_TIME
|
| + if bisect_utils.IsMacHost():
|
| + return MAX_MAC_BUILD_TIME
|
| + raise NotImplementedError('Unsupported Platform "%s".' % sys.platform)
|
| +
|
| def IsDownloadable(self, depot):
|
| """Checks if build can be downloaded based on target platform and depot."""
|
| if (self.opts.target_platform in ['chromium', 'android'] and
|
|
|