Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: tools/perf/core/trybot_command_unittest.py

Issue 2309473002: Extend Perf Try Job support to other chromium repos. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing and fix unittest Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/perf/core/trybot_command.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/core/trybot_command_unittest.py
diff --git a/tools/perf/core/trybot_command_unittest.py b/tools/perf/core/trybot_command_unittest.py
index 68897a349f7f9a5f4f7ec1e274a931b585f9d497..6a2cef0aed88ac10cea9447d24a174045d2be939 100644
--- a/tools/perf/core/trybot_command_unittest.py
+++ b/tools/perf/core/trybot_command_unittest.py
@@ -83,16 +83,24 @@ class TrybotCommandTest(unittest.TestCase):
func(*args)
self.assertIn(message, e.exception.message)
- def _SetupTrybotCommand(self, try_json_dict, trybot):
+ def _SetupTrybotCommand(
+ self, try_json_dict, trybot, benchmark_name='sunspider',
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None):
self._MockTryserverJson(try_json_dict)
command = trybot_command.Trybot()
command._InitializeBuilderNames(trybot)
- return command
+ opts = argparse.Namespace(
+ trybot=trybot, benchmark_name=benchmark_name, repo_path=repo_path,
+ deps_revision=deps_revision)
- def _GetConfigForTrybot(self, name, platform, extra_benchmark_args=None):
+ return command, opts
+
+ def _GetConfigForTrybot(self, name, platform, extra_benchmark_args=None,
+ repo_path=trybot_command.CHROMIUM_SRC_PATH,
+ deps_revision=None):
bot = '%s_perf_bisect' % name.replace('', '').replace('-', '_')
- command = self._SetupTrybotCommand({bot: 'stuff'}, name)
- options = argparse.Namespace(trybot=name, benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand(
+ {bot: 'stuff'}, name, repo_path=repo_path, deps_revision=deps_revision)
extra_benchmark_args = extra_benchmark_args or []
arguments = [options.benchmark_name] + extra_benchmark_args
cfg = command._GetPerfConfig(platform, arguments)
@@ -277,8 +285,22 @@ class TrybotCommandTest(unittest.TestCase):
['linux_perf_bisect'],
sorted(command._builder_names.get('linux')))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value='/dummy/path'))
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value=False))
+ def testRepoPathExists(self):
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux', repo_path='/dummy/path')
+ command.Run(options)
+ self.assertEquals((
+ '(ERROR) Perf Try Job: Repository path "/dummy/path" does not exist, '
+ 'please check the value of <repo_path> argument.'),
+ sys.stdout.getvalue().strip())
+
def testNoGit(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(128, None, None)),
@@ -287,11 +309,12 @@ class TrybotCommandTest(unittest.TestCase):
('%s is not a git repository, must be in a git repository to send '
'changes to trybots.' % os.getcwd()),
command._GetRepoAndBranchName,
- trybot_command.CHROMIUM_SRC_PATH
+ options.repo_path
)
def testDettachedBranch(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nHEAD\n', None)),
@@ -299,51 +322,52 @@ class TrybotCommandTest(unittest.TestCase):
self._AssertTryBotExceptions(
'Not on a valid branch, looks like branch is dettached. [branch:HEAD]',
command._GetRepoAndBranchName,
- trybot_command.CHROMIUM_SRC_PATH
+ options.repo_path
)
def testDirtyTree(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nbr\n', None)),
- (['git', 'update-index', '--refresh', '-q'], (0, None, None,)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
(['git', 'diff-index', 'HEAD'], (0, 'dirty tree', None)),
))
self._AssertTryBotExceptions(
'Cannot send a try job with a dirty tree.',
command._GetRepoAndBranchName,
- trybot_command.CHROMIUM_SRC_PATH
+ options.repo_path
)
def testNoLocalCommits(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nbr\n', None)),
- (['git', 'update-index', '--refresh', '-q'], (0, None, None,)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
(['git', 'diff-index', 'HEAD'], (0, '', None)),
(['git', 'footers', 'HEAD'], (0, 'CL footers', None)),
))
self._AssertTryBotExceptions(
- 'No local changes found in %s repository.' %
- trybot_command.CHROMIUM_SRC_PATH,
+ 'No local changes found in %s repository.' % options.repo_path,
command._GetRepoAndBranchName,
- trybot_command.CHROMIUM_SRC_PATH
+ options.repo_path
)
def testGetRepoAndBranchName(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nbr\n', None)),
- (['git', 'update-index', '--refresh', '-q'], (0, None, None,)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
(['git', 'diff-index', 'HEAD'], (0, '', None)),
(['git', 'footers', 'HEAD'], (0, '', None)),
))
self.assertEquals(
- command._GetRepoAndBranchName(
- trybot_command.CHROMIUM_SRC_PATH), ('src', 'br'))
+ command._GetRepoAndBranchName(options.repo_path), ('src', 'br'))
def testErrorOnBrowserArgSpecified(self):
parser = trybot_command.Trybot.CreateParser()
@@ -419,8 +443,8 @@ class TrybotCommandTest(unittest.TestCase):
)
def testUploadPatchToRietveldGitCommandFailed(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
('CL for src perf tryjob to run sunspider benchmark on linux '
@@ -435,8 +459,8 @@ class TrybotCommandTest(unittest.TestCase):
)
def testUploadPatchToRietveldNoURLMatchFound(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
('CL for src perf tryjob to run sunspider benchmark on linux '
@@ -451,8 +475,8 @@ class TrybotCommandTest(unittest.TestCase):
)
def testUploadPatchToRietveldOnSuccess(self):
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
('CL for src perf tryjob to run sunspider benchmark on linux '
@@ -464,8 +488,8 @@ class TrybotCommandTest(unittest.TestCase):
def testRunTryJobFailed(self):
test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux', repo_path='path_to_repo/src')
arguments = [options.benchmark_name] + []
self._ExpectProcesses((
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
@@ -474,31 +498,127 @@ class TrybotCommandTest(unittest.TestCase):
'linux_perf_bisect'], (128, None, None)),))
self._AssertTryBotExceptions(
'Could not try CL for linux',
- command._RunTryJob, 'linux', arguments)
+ command._RunTryJob, 'linux', arguments, None)
+
+ def testRunTryJobWithDepsOverrideFailed(self):
+ test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
+ deps_override_arg = 'deps_revision_overrides={"src/v8": "feedbeed"}'
+
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux', repo_path='path_to_repo/v8',
+ deps_revision='feedbeed')
+ arguments = [options.benchmark_name] + []
+ self._ExpectProcesses((
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', test_args,
+ '-p', deps_override_arg,
+ '-b',
+ 'linux_perf_bisect'], (128, None, None)),))
+ self._AssertTryBotExceptions(
+ 'Could not try CL for linux with DEPS override',
+ command._RunTryJob, 'linux', arguments, {'src/v8': 'feedbeed'})
def testRunTryJobSuccess(self):
test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux', repo_path='path_to_repo/src')
arguments = [options.benchmark_name] + []
self._ExpectProcesses((
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
'-p', test_args,
'-b',
- 'linux_perf_bisect'], (0, None, None)),))
- command._RunTryJob('linux', arguments)
+ 'linux_perf_bisect'], (0, '', None)),))
+ command._RunTryJob('linux', arguments, None)
self.assertEquals('Perf Try job sent to rietveld for linux platform.',
sys.stdout.getvalue().strip())
+ def testNoUpstream(self):
+ command, _ = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
+ self._ExpectProcesses((
+ (['git', 'config', 'branch.br.remote'], (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (128, 'None', None,)),
+ ))
+ self._AssertTryBotExceptions(
+ 'Failed to get upstream branch name.',
+ command._GetBaseGitHashForRepo, 'br', 'http://repo/git/url.git')
+
+ def testGitConfigBranchRemote(self):
+ command, _ = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
+ self._ExpectProcesses((
+ (['git', 'config', 'branch.br.remote'],
+ (128, 'None', None)),
+ ))
+ self._AssertTryBotExceptions(
+ 'Failed to get branch.br.remote from git config',
+ command._GetBaseGitHashForRepo, 'br', 'http://repo/git/url.git')
+
+ def testGitConfigBranchRemoteUrl(self):
+ command, _ = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
+ self._ExpectProcesses((
+ (['git', 'config', 'branch.br.remote'], (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (0, 'br1', None,)),
+ (['git', 'config', 'branch.br1.remote'], (0, 'origin', None)),
+ (['git', 'config', 'remote.origin.url'], (128, 'None', None)),
+ ))
+ self._AssertTryBotExceptions(
+ 'Failed to get remote.origin.url from git config',
+ command._GetBaseGitHashForRepo, 'br', 'http://repo/git/url.git')
+
+ def testGetBaseGitHashForRemoteURLMatchFound(self):
+ command, _ = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
+ self._ExpectProcesses((
+ (['git', 'config', 'branch.br.remote'],
+ (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (0, 'br1', None,)),
+ (['git', 'config', 'branch.br1.remote'], (0, 'origin', None)),
+ (['git', 'config', 'remote.origin.url'],
+ (0, 'http://repo/git/url.git', None)),
+ (['git', 'rev-parse', 'br1@{upstream}'], (0, 'feedbeed', None)),
+ ))
+ self.assertEquals(
+ command._GetBaseGitHashForRepo('br', 'http://repo/git/url.git'),
+ 'feedbeed')
+
+ def testGetBaseGitHashForRemoteUrlNoMatchFound(self):
+ command, _ = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
+ self._ExpectProcesses((
+ (['git', 'config', 'branch.br.remote'],
+ (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (0, 'br1', None,)),
+ (['git', 'config', 'branch.br1.remote'],
+ (0, 'origin', None)),
+ (['git', 'config', 'remote.origin.url'],
+ (0, 'http://non_maching_repo/git/url.git', None)),
+ (['git', 'rev-parse', 'br1@{upstream}'],
+ (0, 'feedbeed', None)),
+ ))
+ self._AssertTryBotExceptions(
+ ('URL http://non_maching_repo/git/url.git on remote origin is not '
+ 'recognized on branch'),
+ command._GetBaseGitHashForRepo, 'br', 'http://repo/git/url.git')
+
+ @mock.patch('core.trybot_command.os.chdir', mock.MagicMock())
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value='True'))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value=trybot_command.CHROMIUM_SRC_PATH))
def testAttemptTryjobForCrRepo(self):
test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
- command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux')
- options = argparse.Namespace(trybot='linux', benchmark_name='sunspider')
-
+ command, options = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'},
+ 'linux')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nbr\n', None)),
- (['git', 'update-index', '--refresh', '-q'], (0, None, None,)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
(['git', 'diff-index', 'HEAD'], (0, '', None)),
(['git', 'footers', 'HEAD'], (0, '', None)),
(['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
@@ -506,9 +626,9 @@ class TrybotCommandTest(unittest.TestCase):
'platform(s)')],
(0, 'stuff https://codereview.chromium.org/12345 stuff', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', test_args, '-b', 'linux_perf_bisect'], (0, None, None))
+ '-p', test_args, '-b', 'linux_perf_bisect'], (0, '', None))
))
- command._AttemptTryjob(trybot_command.CHROMIUM_SRC_PATH, options, [])
+ command._AttemptTryjob(options, [])
output = ('Uploaded try job to rietveld.\n'
'view progress here https://codereview.chromium.org/12345.\n'
@@ -516,9 +636,14 @@ class TrybotCommandTest(unittest.TestCase):
'\tPath: %s\n'
'\tBranch: br\n'
'Perf Try job sent to rietveld for linux platform.') % (
- trybot_command.CHROMIUM_SRC_PATH)
+ options.repo_path)
self.assertEquals(output, sys.stdout.getvalue().strip())
+ @mock.patch('core.trybot_command.os.chdir', mock.MagicMock())
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value='True'))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value=trybot_command.CHROMIUM_SRC_PATH))
def testAttemptTryjobAllForCrRepo(self):
default_config = self._ExpectedGitTryTestArgs('sunspider', 'release')
winx64_config = self._ExpectedGitTryTestArgs(
@@ -526,17 +651,16 @@ class TrybotCommandTest(unittest.TestCase):
android_config = self._ExpectedGitTryTestArgs(
'sunspider', 'android-chromium', 'ia32')
- command = self._SetupTrybotCommand(
+ command, options = self._SetupTrybotCommand(
{'linux_perf_bisect': 'stuff',
'win_perf_bisect': 'stuff',
'winx64_perf_bisect': 'stuff',
'android_perf_bisect': 'stuff',
'mac_perf_bisect': 'stuff'}, 'all')
- options = argparse.Namespace(trybot='all', benchmark_name='sunspider')
self._ExpectProcesses((
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
(0, '/root/path_to/repo/src\nbr\n', None)),
- (['git', 'update-index', '--refresh', '-q'], (0, None, None,)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
(['git', 'diff-index', 'HEAD'], (0, '', None)),
(['git', 'footers', 'HEAD'], (0, '', None)),
(['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
@@ -544,17 +668,17 @@ class TrybotCommandTest(unittest.TestCase):
'platform(s)')],
(0, 'stuff https://codereview.chromium.org/12345 stuff', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', default_config, '-b', 'win_perf_bisect'], (0, None, None)),
+ '-p', default_config, '-b', 'win_perf_bisect'], (0, '', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', android_config, '-b', 'android_perf_bisect'], (0, None, None)),
+ '-p', android_config, '-b', 'android_perf_bisect'], (0, '', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', winx64_config, '-b', 'winx64_perf_bisect'], (0, None, None)),
+ '-p', winx64_config, '-b', 'winx64_perf_bisect'], (0, '', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', default_config, '-b', 'mac_perf_bisect'], (0, None, None)),
+ '-p', default_config, '-b', 'mac_perf_bisect'], (0, '', None)),
(['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
- '-p', default_config, '-b', 'linux_perf_bisect'], (0, None, None)),
+ '-p', default_config, '-b', 'linux_perf_bisect'], (0, '', None)),
))
- command._AttemptTryjob(trybot_command.CHROMIUM_SRC_PATH, options, [])
+ command._AttemptTryjob(options, [])
output = ('Uploaded try job to rietveld.\n'
'view progress here https://codereview.chromium.org/12345.\n'
'\tRepo Name: src\n'
@@ -565,7 +689,141 @@ class TrybotCommandTest(unittest.TestCase):
'Perf Try job sent to rietveld for win-x64 platform.\n'
'Perf Try job sent to rietveld for mac platform.\n'
'Perf Try job sent to rietveld for linux platform.') % (
- trybot_command.CHROMIUM_SRC_PATH)
+ options.repo_path)
+ self.assertEquals(output, sys.stdout.getvalue().strip())
+
+ @mock.patch('core.trybot_command.os.chdir', mock.MagicMock())
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value='True'))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value='root/path_to/repo/v8'))
+ def testAttemptTryjobForDepsRepo(self):
+ test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
+ deps_override_arg = 'deps_revision_overrides={"src/v8": "feedbeed"}'
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux',
+ repo_path='root/path_to/repo/v8')
+ self._ExpectProcesses((
+ (['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
+ (0, 'root/path_to/repo/v8\nbr\n', None)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
+ (['git', 'diff-index', 'HEAD'], (0, '', None)),
+ (['git', 'footers', 'HEAD'], (0, '', None)),
+ (['git', 'config', 'branch.br.remote'], (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (0, 'br1', None,)),
+ (['git', 'config', 'branch.br1.remote'], (0, 'origin', None)),
+ (['git', 'config', 'remote.origin.url'],
+ (0, 'https://chromium.googlesource.com/v8/v8.git', None)),
+ (['git', 'rev-parse', 'br1@{upstream}'], (0, 'feedbeed', None)),
+ (['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
+ ('CL for v8 perf tryjob to run sunspider benchmark on linux '
+ 'platform(s)')],
+ (0, 'stuff https://codereview.chromium.org/12345 stuff', None)),
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', test_args, '-p', deps_override_arg,
+ '-b', 'linux_perf_bisect'], (0, '', None))
+ ))
+ command._AttemptTryjob(options, [])
+
+ output = ('Uploaded try job to rietveld.\n'
+ 'view progress here https://codereview.chromium.org/12345.\n'
+ '\tRepo Name: v8\n'
+ '\tPath: root/path_to/repo/v8\n'
+ '\tBranch: br\n'
+ 'Perf Try job sent to rietveld for linux platform.')
+ self.assertEquals(output, sys.stdout.getvalue().strip())
+
+ @mock.patch('core.trybot_command.os.chdir', mock.MagicMock())
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value='True'))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value='root/path_to/repo/v8'))
+ def testAttemptTryjobAllForDepsRepo(self):
+ default_config = self._ExpectedGitTryTestArgs('sunspider', 'release')
+ deps_override_arg = 'deps_revision_overrides={"src/v8": "feedbeed"}'
+ winx64_config = self._ExpectedGitTryTestArgs(
+ 'sunspider', 'release_x64', 'x64')
+ android_config = self._ExpectedGitTryTestArgs(
+ 'sunspider', 'android-chromium', 'ia32')
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff',
+ 'winx64_perf_bisect': 'stuff',
+ 'android_perf_bisect': 'stuff'},
+ 'all', repo_path='root/path_to/repo/v8')
+
+ self._ExpectProcesses((
+ (['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
+ (0, 'root/path_to/repo/v8\nbr\n', None)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
+ (['git', 'diff-index', 'HEAD'], (0, '', None)),
+ (['git', 'footers', 'HEAD'], (0, '', None)),
+ (['git', 'config', 'branch.br.remote'], (0, '.', None)),
+ (['git', 'rev-parse', '--abbrev-ref', 'br@{upstream}'],
+ (0, 'br1', None,)),
+ (['git', 'config', 'branch.br1.remote'], (0, 'origin', None)),
+ (['git', 'config', 'remote.origin.url'],
+ (0, 'https://chromium.googlesource.com/v8/v8.git', None)),
+ (['git', 'rev-parse', 'br1@{upstream}'],
+ (0, 'feedbeed', None)),
+ (['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
+ ('CL for v8 perf tryjob to run sunspider benchmark on all '
+ 'platform(s)')],
+ (0, 'stuff https://codereview.chromium.org/12345 stuff', None)),
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', android_config, '-p', deps_override_arg,
+ '-b', 'android_perf_bisect'], (0, '', None)),
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', winx64_config, '-p', deps_override_arg,
+ '-b', 'winx64_perf_bisect'], (0, '', None)),
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', default_config, '-p', deps_override_arg,
+ '-b', 'linux_perf_bisect'], (0, '', None)),
+ ))
+ command._AttemptTryjob(options, [])
+ output = ('Uploaded try job to rietveld.\n'
+ 'view progress here https://codereview.chromium.org/12345.\n'
+ '\tRepo Name: v8\n'
+ '\tPath: root/path_to/repo/v8\n'
+ '\tBranch: br\n'
+ 'Perf Try job sent to rietveld for android platform.\n'
+ 'Perf Try job sent to rietveld for win-x64 platform.\n'
+ 'Perf Try job sent to rietveld for linux platform.')
+ self.assertEquals(output, sys.stdout.getvalue().strip())
+
+ @mock.patch('core.trybot_command.os.chdir', mock.MagicMock())
+ @mock.patch('core.trybot_command.os.path.exists',
+ mock.MagicMock(return_value='True'))
+ @mock.patch('core.trybot_command.os.path.abspath',
+ mock.MagicMock(return_value='root/path_to/repo/v8'))
+ def testAttemptTryjobWithDepsRevisionArg(self):
+ test_args = self._ExpectedGitTryTestArgs('sunspider', 'release')
+ deps_override_arg = 'deps_revision_overrides={"src/v8": "feedbeed"}'
+ command, options = self._SetupTrybotCommand(
+ {'linux_perf_bisect': 'stuff'}, 'linux',
+ repo_path='root/path_to/repo/v8', deps_revision='feedbeed')
+ self._ExpectProcesses((
+ (['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'],
+ (0, 'root/path_to/repo/v8\nbr\n', None)),
+ (['git', 'update-index', '--refresh', '-q'], (0, '', None,)),
+ (['git', 'diff-index', 'HEAD'], (0, '', None)),
+ (['git', 'footers', 'HEAD'], (0, '', None)),
+ (['git', 'cl', 'upload', '-f', '--bypass-hooks', '-m',
+ ('CL for v8 perf tryjob to run sunspider benchmark on linux '
+ 'platform(s)')],
+ (0, 'stuff https://codereview.chromium.org/12345 stuff', None)),
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf',
+ '-p', test_args, '-p', deps_override_arg,
+ '-b', 'linux_perf_bisect'], (0, '', None))
+ ))
+ command._AttemptTryjob(options, [])
+
+ output = ('Uploaded try job to rietveld.\n'
+ 'view progress here https://codereview.chromium.org/12345.\n'
+ '\tRepo Name: v8\n'
+ '\tPath: root/path_to/repo/v8\n'
+ '\tBranch: br\n'
+ 'Perf Try job sent to rietveld for linux platform.')
self.assertEquals(output, sys.stdout.getvalue().strip())
« no previous file with comments | « tools/perf/core/trybot_command.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698