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..fec8eb73b502a25a6d7e423d209bebc9dec861e3 100644 |
--- a/tools/perf/core/trybot_command_unittest.py |
+++ b/tools/perf/core/trybot_command_unittest.py |
@@ -89,10 +89,14 @@ class TrybotCommandTest(unittest.TestCase): |
command._InitializeBuilderNames(trybot) |
return command |
- def _GetConfigForTrybot(self, name, platform, extra_benchmark_args=None): |
+ 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') |
+ options = argparse.Namespace( |
+ trybot=name, benchmark_name='sunspider', 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 +281,25 @@ class TrybotCommandTest(unittest.TestCase): |
['linux_perf_bisect'], |
sorted(command._builder_names.get('linux'))) |
+ @mock.patch('core.trybot_command.os.path.exists') |
+ def testRepoPathExists(self, mock_os_path_exists): |
+ mock_os_path_exists.return_value = False |
+ command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path='/dummy/path', deps_revision=None) |
+ 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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
+ |
self._ExpectProcesses(( |
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'], |
(128, None, None)), |
@@ -287,11 +308,15 @@ 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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
sullivan
2016/09/09 02:42:46
These 3 lines are copy-pasted through the whole fi
prasadv
2016/09/09 23:42:35
Done.
|
+ |
self._ExpectProcesses(( |
(['git', 'rev-parse', '--abbrev-ref', '--show-toplevel', 'HEAD'], |
(0, '/root/path_to/repo/src\nHEAD\n', None)), |
@@ -299,51 +324,61 @@ 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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
+ |
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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
+ |
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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='dromaeo', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
+ |
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() |
@@ -465,40 +500,139 @@ 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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ repo_path='path_to_repo/src', deps_revision=None) |
+ arguments = [options.benchmark_name] + [] |
+ self._ExpectProcesses(( |
+ (['git', 'cl', 'try', '-m', 'tryserver.chromium.perf', |
+ '-p', test_args, |
+ '-b', |
+ 'linux_perf_bisect'], (128, None, None)),)) |
+ self._AssertTryBotExceptions( |
+ 'Could not try CL for linux', |
+ command._RunTryJob, 'linux', arguments, None) |
+ |
+ def testRunTryJobWithDepsOverrideFailed(self): |
+ test_args = self._ExpectedGitTryTestArgs('sunspider', 'release') |
+ deps_override_arg = 'deps_revision_overrides={"src/v8": "feedbeed"}' |
+ |
+ command = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ 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', |
sullivan
2016/09/09 02:42:46
Just curious if it's possible to give a more speci
prasadv
2016/09/09 23:42:35
Done.
|
- command._RunTryJob, 'linux', arguments) |
+ 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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ repo_path='path_to_repo/src', deps_revision=None) |
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') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
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 +640,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 +650,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( |
@@ -532,11 +671,13 @@ class TrybotCommandTest(unittest.TestCase): |
'winx64_perf_bisect': 'stuff', |
'android_perf_bisect': 'stuff', |
'mac_perf_bisect': 'stuff'}, 'all') |
- options = argparse.Namespace(trybot='all', benchmark_name='sunspider') |
+ options = argparse.Namespace( |
+ trybot='all', benchmark_name='sunspider', |
+ repo_path=trybot_command.CHROMIUM_SRC_PATH, deps_revision=None) |
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 +685,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 +706,147 @@ 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 = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ repo_path='root/path_to/repo/v8', deps_revision=None) |
+ |
+ 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 = self._SetupTrybotCommand( |
+ {'linux_perf_bisect': 'stuff', |
+ 'winx64_perf_bisect': 'stuff', |
+ 'android_perf_bisect': 'stuff'}, 'all') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ repo_path='root/path_to/repo/v8', deps_revision=None) |
+ |
+ 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', 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 = self._SetupTrybotCommand({'linux_perf_bisect': 'stuff'}, 'linux') |
+ options = argparse.Namespace( |
+ trybot='linux', benchmark_name='sunspider', |
+ 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()) |