X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/63a6adf1a95b8b369815d7b25ff4929fc285f981..4c3f6e301c9b8d3b11361775e6403c7a2118de2f:/buildtools/buildbot/extensions.py diff --git a/buildtools/buildbot/extensions.py b/buildtools/buildbot/extensions.py deleted file mode 100644 index 23e2b308e9..0000000000 --- a/buildtools/buildbot/extensions.py +++ /dev/null @@ -1,196 +0,0 @@ - - -import re -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 -# INCOMPATIBLE_PLATFORM. - -""" -CustomConfigure class for master-side representation of the -custom configure command. This class considers the error (exit code 77) -that occurs when the platform target don't bear ucontext functionnality. -""" -class CustomConfigure(ShellCommand): - - name = "configure" - description = ["running configure"] - descriptionDone = [name] - incompatible = False - - # Override evaluateCommand method to handle the case of platform that - # don't support ucontext. The method returns sets self.incompatible - # in this case. - - def evaluateCommand(self, cmd): - """Decide whether the command was SUCCESS, FAILURE or incompatible platform""" - - if cmd.rc == 0: - return SUCCESS - elif cmd.rc == 77: - self.incompatible = True - return FAILURE - else: - return FAILURE - - # Override getColor method. The method returns the text "blue" when platform is incompatible - - def getColor(self, cmd, results): - assert results in (SUCCESS, WARNINGS, FAILURE) - if results == SUCCESS: - return "green" - elif results == WARNINGS: - return "orange" - elif self.incompatible: - return "blue" - else: - return "red" - - # Override getText method. The method calls describe method - # with the text "failed {incompatible platform}" when the platform - # don't support ucontext functionnality. - - def getText(self, cmd, results): - if results == SUCCESS: - return self.describe(True) + ["Configure success"] - elif results == WARNINGS: - return self.describe(True) + ["warnings"] - elif self.incompatible: - return self.describe(True) + ["failed {incompatible platform}"] - 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 -""" -class CustomSVN(SVN): - def getText(self,cmd,results): - lines = cmd.logs['stdio'].getText() - r = re.search(' (\d+).',lines) - if results == SUCCESS and r: - return self.describe(True) + ["updated to %s" % r.group(1)] - elif results == SUCCESS: - return self.describe(True) + ["updated to some version"] - else: - 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. -This class stores and displays the amount of errors in the checks. -""" -class CustomCheck(ShellCommand): - name = "check" - description = ["running checks"] - descriptionDone = [name] - - - # Override per step getText method. - def getText(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 self.describe(True) + ["Success (%s)" % res] - elif results == WARNINGS: - return self.describe(True) + ["warnings"] - elif fail == 0: - return self.describe(True) + ["failed strangly"] - else: - return self.describe(True) + [res] - - # 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]