X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d3ba4acfbebaa5dea295bf02ab69f0331498a2cd..7359858b4c996d1172eda261b53fc0fedf0eddc3:/build/buildbot/extensions.py diff --git a/build/buildbot/extensions.py b/build/buildbot/extensions.py index 80e9347535..23e2b308e9 100644 --- a/build/buildbot/extensions.py +++ b/build/buildbot/extensions.py @@ -1,11 +1,16 @@ import re -from buildbot.process import step -from buildbot.process.step import ShellCommand, SVN +from buildbot.steps.source import SVN +from buildbot.steps.shell import ShellCommand +from buildbot.steps.transfer import FileDownload + from buildbot.status import builder from buildbot.status.builder import SUCCESS,FAILURE, EXCEPTION,WARNINGS +from buildbot.process.properties import WithProperties + + # Define a new builder status # Configure return the exit code 77 when the target platform don't # bear ucontext functionnality. In this case the CustomConfigure returns @@ -65,9 +70,31 @@ class CustomConfigure(ShellCommand): else: return self.describe(True) + ["failed"] + def maybeGetText2(self, cmd, results): + if results == SUCCESS: + pass + elif results == WARNINGS: + pass + elif self.incompatible: + return ["incompatible platform"] + else: + return self.describe(True) + ["failed"] + return [] +""" +Cleanup the build dir, and setup a SVN revision in the waterfall afterward +""" +class CleanupCommand(ShellCommand): + name="cleanup" + descriptionDone="cleanup" + command=["bash","-c","rm -rf * .svn"] + def maybeGetText2(self,cmd,results): + if self.build.getProperty("revision") == None: + return ["Missing svn revision"] + return ["SVN r%s" % self.build.getProperty("revision")] + """ Just like a plain SVN, but displays the current revision in the waterfall afterall """ @@ -80,7 +107,15 @@ class CustomSVN(SVN): elif results == SUCCESS: return self.describe(True) + ["updated to some version"] else: - return self.describe(True) + ["failed"] + return self.describe(True) + ["failed"] + + def maybeGetText2(self,cmd,results): + lines = cmd.logs['stdio'].getText() + r = re.search(' (\d+).',lines) + if results == SUCCESS and r: + return ["SVN r%s" % r.group(1)] + else: + return [] """ CustomCheck class for master-side representation of the checkall results. @@ -92,7 +127,7 @@ class CustomCheck(ShellCommand): descriptionDone = [name] - # Override getText method. + # Override per step getText method. def getText(self, cmd, results): lines = cmd.logs['stdio'].getText().split("\n") re.compile('^FAIL:') @@ -108,14 +143,14 @@ class CustomCheck(ShellCommand): res = "" if fail != 0: - res += "%d failed, " % fail + res += ("%d failed, " % fail) if skip != 0: - res += "%d skipped, " % skip + res += ("%d skipped, " % skip) if xpass != 0: - res += "%d unexpected success, " % xpass + res += ("%d unexpected success, " % xpass) if xfail != 0: - res += "%d expected failure, " % xfail - res += "%d total" % (passed + fail + skip + xpass + xfail) + res += ("%d expected failure, " % xfail) + res += ("%d total" % (passed + fail + skip + xpass + xfail)) if results == SUCCESS: return self.describe(True) + ["Success (%s)" % res] @@ -125,4 +160,37 @@ class CustomCheck(ShellCommand): return self.describe(True) + ["failed strangly"] else: return self.describe(True) + [res] - \ No newline at end of file + + # Add some text to the top-column box + def getText2(self, cmd, results): + lines = cmd.logs['stdio'].getText().split("\n") + re.compile('^FAIL:') + fail = len( filter(lambda line: re.search('^FAIL:', line), lines) ) + re.compile('^XFAIL:') + xfail = len( filter(lambda line: re.search('^XFAIL:', line), lines) ) + re.compile('^SKIP:') + skip = len( filter(lambda line: re.search('^SKIP:', line), lines) ) + re.compile('^XPASS:') + xpass = len( filter(lambda line: re.search('^XPASS:', line), lines) ) + re.compile('^PASS:') + passed = len( filter(lambda line: re.search('^PASS:', line), lines) ) + + res = "" + if fail != 0: + res += ("%d failed, " % fail) + if skip != 0: + res += ("%d skipped, " % skip) + if xpass != 0: + res += ("%d unexpected success, " % xpass) + if xfail != 0: + res += ("%d expected failure, " % xfail) + res += ("%d total" % (passed + fail + skip + xpass + xfail)) + + if results == SUCCESS: + return ["All tests ok (%s)" % res] + elif results == WARNINGS: + return ["Warnings (%s)" % res] + elif fail == 0: + return ["Tests failed strangly"] + else: + return [res]