Commit e226c78e authored by prasadv's avatar prasadv Committed by Commit bot

Fix minor error in string formating while processing DEPS.

BUG=407662
NOTRY=true

Review URL: https://codereview.chromium.org/504223003

Cr-Commit-Position: refs/heads/master@{#292027}
parent 0409b4df
......@@ -300,7 +300,7 @@ def IsDepsFileBlink(git_revision=''):
if ret_val:
search_str = 'blink'
search_key = 'webkit_trunk'
git_cmd = ['cat-file', 'blob', '%s:%s' %(git_revision, 'FILE_DEPS')]
git_cmd = ['cat-file', 'blob', '%s:%s' %(git_revision, FILE_DEPS)]
(out_put, ret_val) = RunGit(git_cmd)
if ret_val:
print 'Error processing DEPS or .DEPS.git'
......
......@@ -5,6 +5,7 @@
"""This module contains the SourceControl class and related functions."""
import os
import re
from . import bisect_utils
......@@ -202,17 +203,22 @@ class GitSourceControl(SourceControl):
return log_output == "master"
def SVNFindRev(self, revision, cwd=None):
"""Maps directly to the 'git svn find-rev' command.
def SVNFindRev(self, git_revision, cwd=None):
"""Finds a SVN revision OR git number for the given git hash.
If "git svn find_rev <hash>" fails, then it runs
"git log --format=%b -1 origin/master <hash> and greps for
Cr-Commit-Position.
Args:
revision: The git SHA1 to use.
git_revision: The git SHA1 to use.
Returns:
An integer changelist #, otherwise None.
Git number (aka git commit position) OR an SVN revision as integer,
otherwise None.
"""
cmd = ['svn', 'find-rev', revision]
cmd = ['svn', 'find-rev', git_revision]
output = bisect_utils.CheckRunGit(cmd, cwd)
svn_revision = output.strip()
......@@ -220,6 +226,18 @@ class GitSourceControl(SourceControl):
if bisect_utils.IsStringInt(svn_revision):
return int(svn_revision)
# Retrieve commit position number from git log body for the given revision.
# TODO(prasadv): Use an appropriate command to find commit position instead
# of parsing the log. Resolve this once 407316 is fixed.
commit_position_pattern = 'Cr-Commit-Position: .*@\{#(?P<commit>[0-9]+)\}'
cmd = ['log', '--format=%b', '-1', 'origin/master', git_revision]
output = bisect_utils.CheckRunGit(cmd, cwd=cwd)
if output:
version_re = re.compile(commit_position_pattern)
commit_reg = version_re.search(output)
if commit_reg and bisect_utils.IsStringInt(commit_reg.group('commit')):
return int(commit_reg.group('commit'))
return None
def QueryRevisionInfo(self, revision, cwd=None):
......
......@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import unittest
from auto_bisect import source_control as source_control_module
......@@ -240,12 +241,34 @@ class BisectPerfRegressionTest(unittest.TestCase):
bisect_options)
bisect_instance = bisect_perf_module.BisectPerformanceMetrics(
source_control, bisect_options)
bisect_instance.src_cwd = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..'))
results = bisect_instance.Run(bisect_options.command,
bisect_options.bad_revision,
bisect_options.good_revision,
bisect_options.metric)
bisect_instance.FormatAndPrintResults(results)
def testSVNFindRev(self):
"""Determine numerical SVN revision or Commit Position."""
options_dict = {
'debug_ignore_build': True,
'debug_ignore_sync': True,
'debug_ignore_perf_test': True,
'command': 'fake_command',
'metric': 'fake/metric',
'good_revision': 280000,
'bad_revision': 280005,
}
bisect_options = bisect_perf_module.BisectOptions.FromDict(options_dict)
source_control = source_control_module.DetermineAndCreateSourceControl(
bisect_options)
cp_git_rev = '7017a81991de983e12ab50dfc071c70e06979531'
self.assertEqual(291915, source_control.SVNFindRev(cp_git_rev))
svn_git_rev = 'e6db23a037cad47299a94b155b95eebd1ee61a58'
self.assertEqual(291467, source_control.SVNFindRev(svn_git_rev))
if __name__ == '__main__':
unittest.main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment