| Index: tools/auto_bisect/bisect_perf_regression.py
|
| diff --git a/tools/bisect-perf-regression.py b/tools/auto_bisect/bisect_perf_regression.py
|
| similarity index 98%
|
| rename from tools/bisect-perf-regression.py
|
| rename to tools/auto_bisect/bisect_perf_regression.py
|
| index 6166f402b3fc0b3eb050632982cd21281f2ca51b..8708d03acbf29c2bd3c381173487f29f28217240 100755
|
| --- a/tools/bisect-perf-regression.py
|
| +++ b/tools/auto_bisect/bisect_perf_regression.py
|
| @@ -15,7 +15,7 @@ range.
|
|
|
| Example usage using SVN revisions:
|
|
|
| -./tools/bisect-perf-regression.py -c\
|
| +./tools/bisect_perf_regression.py -c\
|
| "out/Release/performance_ui_tests --gtest_filter=ShutdownTest.SimpleUserQuit"\
|
| -g 168222 -b 168232 -m shutdown/simple-user-quit
|
|
|
| @@ -25,7 +25,7 @@ revision were merged in.
|
|
|
| Example usage using git hashes:
|
|
|
| -./tools/bisect-perf-regression.py -c\
|
| +./tools/bisect_perf_regression.py -c\
|
| "out/Release/performance_ui_tests --gtest_filter=ShutdownTest.SimpleUserQuit"\
|
| -g 1f6e67861535121c5c819c16a666f2436c207e7b\
|
| -b b732f23b4f81c382db0b23b9035f3dadc7d925bb\
|
| @@ -47,14 +47,15 @@ import sys
|
| import time
|
| import zipfile
|
|
|
| -sys.path.append(os.path.join(os.path.dirname(__file__), 'telemetry'))
|
| +sys.path.append(os.path.join(
|
| + os.path.dirname(__file__), os.path.pardir, 'telemetry'))
|
|
|
| -from auto_bisect import bisect_utils
|
| -from auto_bisect import builder
|
| -from auto_bisect import math_utils
|
| -from auto_bisect import request_build
|
| -from auto_bisect import source_control as source_control_module
|
| -from auto_bisect import ttest
|
| +import bisect_utils
|
| +import builder
|
| +import math_utils
|
| +import request_build
|
| +import source_control as source_control_module
|
| +import ttest
|
| from telemetry.util import cloud_storage
|
|
|
| # Below is the map of "depot" names to information about each depot. Each depot
|
| @@ -150,6 +151,9 @@ DEPOT_DEPS_NAME = {
|
|
|
| DEPOT_NAMES = DEPOT_DEPS_NAME.keys()
|
|
|
| +# The script is in chromium/src/tools/auto_bisect. Throughout this script,
|
| +# we use paths to other things in the chromium/src repository.
|
| +
|
| CROS_CHROMEOS_PATTERN = 'chromeos-base/chromeos-chrome'
|
|
|
| # Possible return values from BisectPerformanceMetrics.RunTest.
|
| @@ -913,6 +917,10 @@ class BisectPerformanceMetrics(object):
|
|
|
| self.opts = opts
|
| self.source_control = source_control
|
| +
|
| + # The src directory here is NOT the src/ directory for the repository
|
| + # where the bisect script is running from. Instead, it's the src/ directory
|
| + # inside the bisect/ directory which is created before running.
|
| self.src_cwd = os.getcwd()
|
| self.cros_cwd = os.path.join(os.getcwd(), '..', 'cros')
|
| self.depot_cwd = {}
|
| @@ -920,12 +928,11 @@ class BisectPerformanceMetrics(object):
|
| self.warnings = []
|
| self.builder = builder.Builder.FromOpts(opts)
|
|
|
| - for d in DEPOT_NAMES:
|
| + for depot in DEPOT_NAMES:
|
| # The working directory of each depot is just the path to the depot, but
|
| # since we're already in 'src', we can skip that part.
|
| -
|
| - self.depot_cwd[d] = os.path.join(
|
| - self.src_cwd, DEPOT_DEPS_NAME[d]['src'][4:])
|
| + self.depot_cwd[depot] = os.path.join(
|
| + self.src_cwd, DEPOT_DEPS_NAME[depot]['src'][4:])
|
|
|
| def PerformCleanup(self):
|
| """Performs cleanup when script is finished."""
|
| @@ -1090,8 +1097,8 @@ class BisectPerformanceMetrics(object):
|
| depot_data_src = depot_data.get('src') or depot_data.get('src_old')
|
| src_dir = deps_data.get(depot_data_src)
|
| if src_dir:
|
| - self.depot_cwd[depot_name] = os.path.join(self.src_cwd,
|
| - depot_data_src[4:])
|
| + self.depot_cwd[depot_name] = os.path.join(
|
| + self.src_cwd, depot_data_src[4:])
|
| re_results = rxp.search(src_dir)
|
| if re_results:
|
| results[depot_name] = re_results.group('revision')
|
| @@ -1567,11 +1574,14 @@ class BisectPerformanceMetrics(object):
|
| return self.opts.bisect_mode in [BISECT_MODE_STD_DEV]
|
|
|
| def GetCompatibleCommand(self, command_to_run, revision, depot):
|
| - # Prior to crrev.com/274857 *only* android-chromium-testshell
|
| - # Then until crrev.com/276628 *both* (android-chromium-testshell and
|
| - # android-chrome-shell) work. After that rev 276628 *only*
|
| - # android-chrome-shell works. bisect-perf-regression.py script should
|
| - # handle these cases and set appropriate browser type based on revision.
|
| + """Return a possibly modified test command depending on the revision.
|
| +
|
| + Prior to crrev.com/274857 *only* android-chromium-testshell
|
| + Then until crrev.com/276628 *both* (android-chromium-testshell and
|
| + android-chrome-shell) work. After that rev 276628 *only*
|
| + android-chrome-shell works. The bisect_perf_regression.py script should
|
| + handle these cases and set appropriate browser type based on revision.
|
| + """
|
| if self.opts.target_platform in ['android']:
|
| # When its a third_party depot, get the chromium revision.
|
| if depot != 'chromium':
|
| @@ -2283,7 +2293,7 @@ class BisectPerformanceMetrics(object):
|
| this will contain the field "error", otherwise None.
|
| """
|
| if self.opts.target_platform == 'android':
|
| - revision_to_check = self.source_control.GetCommitPosition(good_revision)
|
| + good_revision = self.source_control.GetCommitPosition(good_revision)
|
| if (bisect_utils.IsStringInt(good_revision)
|
| and good_revision < 265549):
|
| return {'error': (
|
|
|