Permalink
Browse files

Merging from default

changeset:   2780:4b674b64a6db
parent:      2778:de9e02f82370
user:        Phil Ringnalda <philringnalda>
date:        Sun Mar 25 20:14:00 2012 -0700
summary:     Bug 733801 - Try emailer needs to know that results: 5 means automatic retry, and that it isn't a failure, r=catlee

changeset:   2782:3bada48fec78
parent:      2780:4b674b64a6db
user:        Phil Ringnalda <philringnalda@gmail.com>
date:        Mon Nov 12 00:08:38 2012 -0800
summary:     Bug 810760 - change the <br /> in Jetpack results to a <br/> so tbpl will realize they are results, r=Callek

changeset:   2783:cffc8d2e27ab
user:        Ed Morley <emorley@mozilla.com>
date:        Mon Nov 12 18:52:05 2012 +0000
summary:     Bug 810995 - Remove hgweb link from "thank you for your try submission" email & improve wording; r=bhearsum

changeset:   2784:66c0b57ed349
user:        Mark Banner <bugzilla@standard8.plus.com>
date:        Mon Nov 12 22:08:12 2012 +0000
summary:     Bug 807768 Don't upload buildbot server logs to the latest-*-l10n directories. r=catlee

changeset:   2792:e9cd53d34696
tag:         tip
parent:      2784:66c0b57ed349
user:        Steve Fink <sfink@mozilla.com>
date:        Thu Oct 25 12:50:33 2012 -0700
summary:     Bug 802937 - Allow filtering tests by prettyName substring tests. r=bhearsum

--HG--
branch : production-0.8
  • Loading branch information...
ccooper committed Nov 13, 2012
2 parents 7bec4d4 + 98056d9 commit 97ce1e4094e2348f86209b7a5c4eda0f4f7090be
Showing with 230 additions and 30 deletions.
  1. +7 −4 bin/log_uploader.py
  2. +5 −2 bin/try_mailer.py
  3. +5 −5 status/generators.py
  4. +1 −1 steps/unittest.py
  5. +77 −4 test/test_try_parser.py
  6. +135 −14 try_parser.py
View
@@ -291,7 +291,10 @@ def formatLog(tmpdir, build, master_name, builder_suffix=''):
if options.nightly:
uploadArgs['to_tinderbox_dated'] = False
uploadArgs['to_dated'] = True
- uploadArgs['to_latest'] = True
+ # Don't upload to the latest directory - the logs are
+ # already in the dated directory and we should keep the
+ # latest-* directory clean.
+ #uploadArgs['to_latest'] = True
else:
uploadArgs['to_tinderbox_builds'] = True
uploadArgs['upload_dir'] = uploadArgs['branch']
@@ -301,9 +304,9 @@ def formatLog(tmpdir, build, master_name, builder_suffix=''):
if options.nightly or isNightly(build):
uploadArgs['to_dated'] = True
- # Don't upload to the latest directory for now; we have no
- # way of purging the logs out of the latest-<branch>
- # directories
+ # Don't upload to the latest directory - the logs are
+ # already in the dated directory and we should keep the
+ # latest-* directory clean.
#uploadArgs['to_latest'] = True
if 'mobile' in options.product:
uploadArgs['branch'] = options.branch + '-' + platform
View
@@ -8,7 +8,7 @@
from email.message import Message
from email.utils import formatdate
-from buildbot.status.builder import SUCCESS, WARNINGS, FAILURE, EXCEPTION
+from buildbot.status.builder import SUCCESS, WARNINGS, FAILURE, EXCEPTION, RETRY
def getBuild(builder_path, build_number):
build_path = os.path.join(builder_path, build_number)
@@ -92,6 +92,9 @@ def makeTryMessage(build, log_url):
elif result == FAILURE:
subject = "%(tree)s submission %(revision)s - errors" % locals()
result_msg = "failed to complete"
+ elif result == RETRY:
+ subject = "Try submission %(revision)s - retried" % locals()
+ result_msg = "is being automatically retried"
else:
subject = "%(tree)s submission %(revision)s - errors" % locals()
result_msg = "had unknown problem (%s)" % result
@@ -201,7 +204,7 @@ def formatMessage(msgdict, from_, to):
if tm_options.all_emails:
msgdict = makeTryMessage(build, log_url)
elif tm_options.failure:
- if result != SUCCESS:
+ if result != SUCCESS and result != RETRY:
msgdict = makeTryMessage(build, log_url)
# Send it!
View
@@ -15,13 +15,13 @@ def buildTryChangeMessage(change, packageDir):
"References": "<%(branch)s-%(revision)s>" % locals(),
}
msgdict["body"] = """\
-Thanks for your try submission (http://hg.mozilla.org/%(branch)s/pushloghtml?changeset=%(revision)s). It's the best!
+Thank you for your try submission. It's the best!
-Watch https://tbpl.mozilla.org/?tree=%(tree)s&rev=%(revision)s for your results to come in.
+Results will be displayed on TBPL as they come in:
+https://tbpl.mozilla.org/?tree=%(tree)s&rev=%(revision)s
-Builds and logs will be available at %(packageDir)s.
-
-This directory won't be created until the first builds are uploaded, so please be patient.
+Once completed, builds and logs will be available at:
+%(packageDir)s
""" % locals()
return msgdict
View
@@ -179,7 +179,7 @@ def summarizeLogJetpacktests(name, log):
# Format the counts
summary = "%d/%d" % (totalCount, failCount)
# Return the summary.
- return "TinderboxPrint:%s<br />%s\n" % (name, summary)
+ return "TinderboxPrint:%s<br/>%s\n" % (name, summary)
def summarizeTUnit(name, log):
# Counts and flags.
View
@@ -58,6 +58,7 @@
'Rev3 Fedora 12 try debug test mochitest-browser-chrome',
'Rev3 Fedora 12 try debug test mochitest-other',
'Rev3 WINNT 5.1 try opt test reftest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
'Rev3 WINNT 6.1 try opt test crashtest',
'Rev3 WINNT 6.1 try debug test crashtest',
'Rev3 WINNT 6.1 try debug test mochitest-browser-chrome',
@@ -91,7 +92,20 @@ def test_JunkMessageTesters(self):
# Should get default set with junk input to the test masters
tm = "try: junk"
self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES, None, UNITTEST_SUITES)
- builders = ['Rev3 Fedora 12 try opt test mochitest-1', 'Rev3 Fedora 12 try opt test mochitest-browser-chrome', 'Rev3 Fedora 12 try opt test mochitest-other', 'Rev3 Fedora 12 try opt test crashtest', 'Rev3 Fedora 12 try debug test mochitest-1', 'Rev3 Fedora 12 try debug test mochitest-browser-chrome', 'Rev3 Fedora 12 try debug test mochitest-other', 'Rev3 WINNT 5.1 try opt test reftest', 'Rev3 WINNT 6.1 try opt test crashtest', 'Rev3 WINNT 6.1 try debug test crashtest', 'Rev3 WINNT 6.1 try debug test mochitest-browser-chrome', 'Rev3 WINNT 6.1 try debug test mochitest-other', 'Rev3 WINNT 6.1 try debug test mochitest-3']
+ builders = ['Rev3 Fedora 12 try opt test mochitest-1',
+ 'Rev3 Fedora 12 try opt test mochitest-browser-chrome',
+ 'Rev3 Fedora 12 try opt test mochitest-other',
+ 'Rev3 Fedora 12 try opt test crashtest',
+ 'Rev3 Fedora 12 try debug test mochitest-1',
+ 'Rev3 Fedora 12 try debug test mochitest-browser-chrome',
+ 'Rev3 Fedora 12 try debug test mochitest-other',
+ 'Rev3 WINNT 5.1 try opt test reftest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest',
+ 'Rev3 WINNT 6.1 try debug test mochitest-browser-chrome',
+ 'Rev3 WINNT 6.1 try debug test mochitest-other',
+ 'Rev3 WINNT 6.1 try debug test mochitest-3']
self.assertEqual(sorted(self.customBuilders),sorted(builders))
def test_JunkBuildMessage(self):
@@ -168,6 +182,7 @@ def test_AllOnTestMaster(self):
'Rev3 Fedora 12 try debug test mochitest-other',
'Rev3 Fedora 12 try debug test mochitest-browser-chrome',
'Rev3 WINNT 5.1 try opt test reftest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
'Rev3 WINNT 6.1 try opt test crashtest',
'Rev3 WINNT 6.1 try debug test crashtest',
'Rev3 WINNT 6.1 try debug test mochitest-other',
@@ -251,7 +266,10 @@ def test_SelectTests(self):
self.assertEqual(sorted(self.customBuilders),sorted(builders))
# test in the getTestBuilders (for local builder_master unittests)
self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES, None, UNITTEST_SUITES)
- builders = ['Rev3 WINNT 6.1 try opt test crashtest', 'Rev3 WINNT 6.1 try debug test crashtest', 'Rev3 WINNT 6.1 try debug test mochitest-other']
+ builders = ['Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest',
+ 'Rev3 WINNT 6.1 try debug test mochitest-other']
self.assertEqual(sorted(self.customBuilders),sorted(builders))
def test_NoTests(self):
@@ -292,7 +310,60 @@ def test_NoTalos(self):
def test_DebugWin32OnTestMaster(self):
tm = 'try: -b do -p win32 -u crashtest'
self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
- builders = ['Rev3 WINNT 6.1 try debug test crashtest', 'Rev3 WINNT 6.1 try opt test crashtest']
+ builders = ['Rev3 WINNT 6.1 try debug test crashtest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try opt test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_RestrictionBaseline(self):
+ # This isn't really a test of anything. It's mostly to make reading the
+ # following tests easier by giving the full set of possible builds
+ # without any filtering.
+ tm = 'try: -b do -p win32 -u crashtest'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_Include5_1(self):
+ tm = 'try: -b do -p win32 -u crashtest[5.1]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 5.1 try opt test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_IncludeExclude(self):
+ tm = 'try: -b do -p win32 -u crashtest[-5.1,debug]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 6.1 try debug test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_IncludeExcludeEmpty(self):
+ tm = 'try: -b do -p win32 -u crashtest[-5.1,5.1]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = []
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_IncludeDummyExclude(self):
+ tm = 'try: -b do -p win32 -u crashtest[5.1,-notfound]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 5.1 try opt test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_Exclude5_1(self):
+ tm = 'try: -b do -p win32 -u crashtest[-5.1]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest']
+ self.assertEqual(sorted(self.customBuilders),sorted(builders))
+
+ def test_MultipleInclusions(self):
+ tm = 'try: -b do -p win32 -u all[5.1,crash]'
+ self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES,None, UNITTEST_SUITES)
+ builders = ['Rev3 WINNT 5.1 try opt test reftest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest']
self.assertEqual(sorted(self.customBuilders),sorted(builders))
def test_HiddenCharactersAndOldSyntax(self):
@@ -315,7 +386,9 @@ def test_NoBuildTypeSelected(self):
# should get both build types in test_builders
self.customBuilders = TryParser(tm, VALID_TESTER_NAMES, TESTER_PRETTY_NAMES, None, UNITTEST_SUITES)
- builders = ['Rev3 WINNT 6.1 try opt test crashtest', 'Rev3 WINNT 6.1 try debug test crashtest']
+ builders = ['Rev3 WINNT 6.1 try opt test crashtest',
+ 'Rev3 WINNT 5.1 try opt test crashtest',
+ 'Rev3 WINNT 6.1 try debug test crashtest']
self.assertEqual(sorted(self.customBuilders),sorted(builders))
def _testNewLineProcessMessage(self, message, value=None):
Oops, something went wrong.

0 comments on commit 97ce1e4

Please sign in to comment.