Author: Ronan Lamy <[email protected]>
Branch: 
Changeset: r967:3f895b5359db
Date: 2015-10-20 06:52 +0100
http://bitbucket.org/pypy/buildbot/changeset/3f895b5359db/

Log:    Don't handle xpasses and xfails as test failures

diff --git a/bot2/pypybuildbot/summary.py b/bot2/pypybuildbot/summary.py
--- a/bot2/pypybuildbot/summary.py
+++ b/bot2/pypybuildbot/summary.py
@@ -55,6 +55,7 @@
         self.failed = set()
         self.skipped = set()
         self._xfailed = 0
+        self._xpassed = 0
         self.longreprs = {}
         self._run_info = run_info
 
@@ -88,6 +89,8 @@
             pass
         elif shortrepr == 'x':
             self._xfailed += 1
+        elif shortrepr == 'X':
+            self._xpassed += 1
         else:
             self.failed.add(namekey)
 
@@ -101,8 +104,8 @@
 
     @property
     def numpassed(self):
-        return (len(self._outcomes) - len(self.skipped) - len(self.failed)
-                                    - self._xfailed)
+        return (len(self._outcomes) - len(self.skipped) - len(self.failed) -
+                self._xfailed - self._xpassed)
 
     @property
     def numxfailed(self):
@@ -246,7 +249,7 @@
         if self._failed is None:
             self._failed = set()
             for prefix, outcome in self.map.items():
-                self._failed.update([(prefix,)+ namekey for namekey in
+                self._failed.update([(prefix,) + namekey for namekey in
                                      outcome.failed])
         return self._failed
 
@@ -497,7 +500,7 @@
             combination = 0
             for i, (label, outcome_set) in enumerate(by_label):
                 letter = outcome_set.get_outcome(failure)
-                failed = letter.lower() not in ('s', '.', ' ')
+                failed = letter.lower() not in ('s', '.', ' ', 'x')
                 if failed:
                     combination |= 1 << i
                 if outcome_set.get_longrepr(failure):
diff --git a/bot2/pypybuildbot/test/test_summary.py 
b/bot2/pypybuildbot/test/test_summary.py
--- a/bot2/pypybuildbot/test/test_summary.py
+++ b/bot2/pypybuildbot/test/test_summary.py
@@ -150,11 +150,12 @@
         rev_outcome_set = summary.RevisionOutcomeSet('50000')
         log = StringIO("""x a/b.py
  EXC
+X a/b.py::test_1
 """)
 
         rev_outcome_set.populate(log)
-
         assert rev_outcome_set.numxfailed == 1
+        assert not rev_outcome_set.failed
 
 
     def test_absent_outcome(self):
@@ -204,9 +205,10 @@
         log = StringIO("""F a/b.py:test_one
  some
  traceback
-. a/b.py:test_two
-s a/b.py:test_three
-x a/b.py:test_four
+. a/b.py::test_two
+s a/b.py::test_three
+x a/b.py::test_four
+X a/b.py::test_five
 """)
 
         rev_outcome_set_foo.populate(log)
@@ -215,9 +217,9 @@
         key_bar = ('bar', 7)
         rev_outcome_set_bar = summary.RevisionOutcomeSet('50000',
                                                          key_bar)
-        log = StringIO(""". a/b.py:test_one
-. a/b.py:test_two
-s a/b.py:test_three
+        log = StringIO(""". a/b.py::test_one
+. a/b.py::test_two
+s a/b.py::test_three
 """)
 
         rev_outcome_set_bar.populate(log)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to