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

Side by Side Diff: buildbot/scripts/master/try_job_base.py

Issue 1733026: Support --gtest_filter for try jobs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: '' Created 10 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2009 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 import re 7 import re
8 8
9 from buildbot import buildset 9 from buildbot import buildset
10 from buildbot.changes.changes import Change 10 from buildbot.changes.changes import Change
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 raise BadJobfile("'%s' is an invalid email address!" % email) 43 raise BadJobfile("'%s' is an invalid email address!" % email)
44 44
45 diff = options.get('patch', None) 45 diff = options.get('patch', None)
46 root = options.get('root', None) 46 root = options.get('root', None)
47 clobber = options.get('clobber') 47 clobber = options.get('clobber')
48 # -pN argument to patch. 48 # -pN argument to patch.
49 patchlevel = int(options.get('patchlevel', 0)) 49 patchlevel = int(options.get('patchlevel', 0))
50 branch = options.get('branch', None) 50 branch = options.get('branch', None)
51 revision = options.get('revision', None) 51 revision = options.get('revision', None)
52 buildset_id = options.get('reason', '%s: %s' % (user, job_name)) 52 buildset_id = options.get('reason', '%s: %s' % (user, job_name))
53 tests = [item for item in options.get('tests', '').split(',') if item] 53 testfilters = [item for item in options.get('testfilter', '').split(',')
54 if item]
54 project = options.get('project', self.pools.default_pool_name) 55 project = options.get('project', self.pools.default_pool_name)
55 56
56 # Code review infos. Enforce numbers. 57 # Code review infos. Enforce numbers.
57 patchset = options.get('patchset', None) 58 patchset = options.get('patchset', None)
58 if patchset: 59 if patchset:
59 patchset = int(patchset) 60 patchset = int(patchset)
60 issue = options.get('issue', None) 61 issue = options.get('issue', None)
61 if issue: 62 if issue:
62 issue = int(issue) 63 issue = int(issue)
63 64
(...skipping 21 matching lines...) Expand all
85 changes=fake_changes, 86 changes=fake_changes,
86 last_good_url=last_good_url, 87 last_good_url=last_good_url,
87 code_review_site=code_review_site, 88 code_review_site=code_review_site,
88 job_name=job_name, patchset=patchset, issue=issue) 89 job_name=job_name, patchset=patchset, issue=issue)
89 # Current job extra properties that are not related to the source stamp. 90 # Current job extra properties that are not related to the source stamp.
90 # Initialize with the Scheduler's base properties. 91 # Initialize with the Scheduler's base properties.
91 props = Properties() 92 props = Properties()
92 props.updateFromProperties(self.properties) 93 props.updateFromProperties(self.properties)
93 if clobber: 94 if clobber:
94 props.setProperty('clobber', True, 'Scheduler') 95 props.setProperty('clobber', True, 'Scheduler')
95 if tests: 96 if testfilters:
96 props.setProperty('tests', tests, 'Scheduler') 97 props.setProperty('testfilters', testfilters, 'Scheduler')
97 return builder_names, jobstamp, buildset_id, props 98 return builder_names, jobstamp, buildset_id, props
98 99
99 def SubmitJob(self, options): 100 def SubmitJob(self, options):
100 """Queues the buildset. 101 """Queues the buildset.
101 102
102 Args: 103 Args:
103 options: an optparse set of options. 104 options: an optparse set of options.
104 105
105 Returns: an HTTP error code. 106 Returns: an HTTP error code.
106 107
107 The content of options is decoded by ParseJob. If the file 'disable_try' 108 The content of options is decoded by ParseJob. If the file 'disable_try'
108 exists in the current directory, the try server is disabled. 109 exists in the current directory, the try server is disabled.
109 """ 110 """
110 if os.path.exists('disable_try'): 111 if os.path.exists('disable_try'):
111 log.msg('Try job cancelled because the server is disabled!') 112 log.msg('Try job cancelled because the server is disabled!')
112 return http.SERVICE_UNAVAILABLE 113 return http.SERVICE_UNAVAILABLE
113 114
114 try: 115 try:
115 builder_names, jobstamp, buildset_id, props = self.ParseJob(options) 116 builder_names, jobstamp, buildset_id, props = self.ParseJob(options)
116 except BadJobfile: 117 except BadJobfile:
117 log.msg('%s reports a bad job connection' % (self)) 118 log.msg('%s reports a bad job connection' % (self))
118 log.err() 119 log.err()
119 return http.BAD_REQUEST 120 return http.BAD_REQUEST
120 reason = "'%s' try job" % buildset_id 121 reason = "'%s' try job" % buildset_id
121 bs = buildset.BuildSet(builder_names, jobstamp, reason=reason, 122 bs = buildset.BuildSet(builder_names, jobstamp, reason=reason,
122 bsid=buildset_id, properties=props) 123 bsid=buildset_id, properties=props)
123 self.parent.submitBuildSet(bs) 124 self.parent.submitBuildSet(bs)
124 return http.OK 125 return http.OK
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698