This will enable us to mark tests we know currently fail to differentiate
them from those that we know should pass. Regressions should be easier to
spot this way.

Signed-off-by: Dan McGee <[EMAIL PROTECTED]>
---
 pactest/pmenv.py                 |   31 ++++++++++++++++++++++++++-----
 pactest/pmtest.py                |    1 +
 pactest/tests/fileconflict001.py |    2 ++
 pactest/tests/fileconflict002.py |    2 ++
 pactest/tests/fileconflict004.py |    2 ++
 pactest/tests/sync403.py         |    2 ++
 pactest/tests/trans001.py        |    2 ++
 pactest/tests/upgrade046.py      |    2 ++
 pactest/tests/upgrade051.py      |    2 ++
 9 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/pactest/pmenv.py b/pactest/pmenv.py
index f2327f9..b86abe9 100755
--- a/pactest/pmenv.py
+++ b/pactest/pmenv.py
@@ -86,13 +86,25 @@ class pmenv:
         """
         passed = 0
         tpassed = []
+        failed = 0
         tfailed = []
+        expectedfail = 0
+        texpectedfail = []
+        unexpectedpass = 0
+        tunexpectedpass = []
         for test in self.testcases:
             fail = test.result["fail"]
-            if fail == 0:
+            if fail == 0 and not test.expectfailure:
                 passed += 1
                 tpassed.append(test)
+            elif fail != 0 and test.expectfailure:
+                expectedfail += 1
+                texpectedfail.append(test)
+            elif fail == 0: # and not test.expectfail
+                unexpectedpass += 1
+                tunexpectedpass.append(test)
             else:
+                failed += 1
                 tfailed.append(test)
 
         def _printtest(t):
@@ -114,17 +126,26 @@ class pmenv:
         print "=========="*8
         print "Results"
         print "----------"*8
+        print " Passed:"
         for test in tpassed: _printtest(test)
         print "----------"*8
+        print " Expected Failures:"
+        for test in texpectedfail: _printtest(test)
+        print "----------"*8
+        print " Unexpected Passes:"
+        for test in tunexpectedpass: _printtest(test)
+        print "----------"*8
+        print " Failed:"
         for test in tfailed: _printtest(test)
         print "----------"*8
 
         total = len(self.testcases)
-        failed = total - passed
-        print "TOTAL = %3u" % total
+        print "Total            = %3u" % total
         if total:
-            print "PASS  = %3u (%6.2f%%)" % (passed, float(passed) * 100 / 
total)
-            print "FAIL  = %3u (%6.2f%%)" % (failed, float(failed) * 100 / 
total)
+            print "Pass             = %3u (%6.2f%%)" % (passed, float(passed) 
* 100 / total)
+            print "Expected Fail    = %3u (%6.2f%%)" % (expectedfail, 
float(expectedfail) * 100 / total)
+            print "Unexpected Pass  = %3u (%6.2f%%)" % (unexpectedpass, 
float(unexpectedpass) * 100 / total)
+            print "Fail             = %3u (%6.2f%%)" % (failed, float(failed) 
* 100 / total)
         print ""
 
 if __name__ == "__main__":
diff --git a/pactest/pmtest.py b/pactest/pmtest.py
index e8f6fa8..f31563b 100755
--- a/pactest/pmtest.py
+++ b/pactest/pmtest.py
@@ -90,6 +90,7 @@ class pmtest:
         # Test rules
         self.rules = []
         self.files = []
+        self.expectfailure = False
         
         if os.path.isfile(self.name):
             execfile(self.name)
diff --git a/pactest/tests/fileconflict001.py b/pactest/tests/fileconflict001.py
index 4c2069e..8c13911 100644
--- a/pactest/tests/fileconflict001.py
+++ b/pactest/tests/fileconflict001.py
@@ -18,3 +18,5 @@ self.args = "-U %s" % " ".join([p.filename() for p in p1, p2])
 self.addrule("PACMAN_RETCODE=1")
 self.addrule("!PKG_EXIST=pkg1")
 self.addrule("!PKG_EXIST=pkg2")
+
+self.expectfailure = True
diff --git a/pactest/tests/fileconflict002.py b/pactest/tests/fileconflict002.py
index c54f6da..f70873b 100644
--- a/pactest/tests/fileconflict002.py
+++ b/pactest/tests/fileconflict002.py
@@ -14,3 +14,5 @@ self.args = "-U %s" % " ".join([p.filename() for p in p1, p2])
 self.addrule("PACMAN_RETCODE=1")
 self.addrule("!PKG_EXIST=pkg1")
 self.addrule("!PKG_EXIST=pkg2")
+
+self.expectfailure = True
diff --git a/pactest/tests/fileconflict004.py b/pactest/tests/fileconflict004.py
index a5347cc..2396ced 100644
--- a/pactest/tests/fileconflict004.py
+++ b/pactest/tests/fileconflict004.py
@@ -17,3 +17,5 @@ self.addrule("PACMAN_RETCODE=0")
 self.addrule("PKG_EXIST=pkg1")
 self.addrule("PKG_VERSION=pkg1|2.0-1")
 self.addrule("FILE_TYPE=test|link")
+
+self.expectfailure = True
diff --git a/pactest/tests/sync403.py b/pactest/tests/sync403.py
index b8d0101..d8ab763 100644
--- a/pactest/tests/sync403.py
+++ b/pactest/tests/sync403.py
@@ -19,3 +19,5 @@ self.addrule("PACMAN_RETCODE=0")
 self.addrule("PKG_EXIST=pkg1")
 self.addrule("!PKG_EXIST=pkg2")
 self.addrule("PKG_EXIST=pkg3")
+
+self.expectfailure = True
diff --git a/pactest/tests/trans001.py b/pactest/tests/trans001.py
index b9889b1..b3d7883 100644
--- a/pactest/tests/trans001.py
+++ b/pactest/tests/trans001.py
@@ -18,3 +18,5 @@ self.addrule("PACMAN_RETCODE=1")
 self.addrule("!PKG_EXIST=pkg1")
 self.addrule("PKG_EXIST=pkg2")
 self.addrule("PKG_EXIST=pkg3")
+
+self.expectfailure = True
diff --git a/pactest/tests/upgrade046.py b/pactest/tests/upgrade046.py
index 60164b7..1239064 100644
--- a/pactest/tests/upgrade046.py
+++ b/pactest/tests/upgrade046.py
@@ -29,3 +29,5 @@ self.addrule("FILE_MODIFIED=bin/dummy")
 self.addrule("FILE_MODIFIED=bin/foobar")
 self.addrule("FILE_EXIST=usr/share/file")
 self.addrule("FILE_MODIFIED=usr/share/file")
+
+self.expectfailure = True
diff --git a/pactest/tests/upgrade051.py b/pactest/tests/upgrade051.py
index e8c69eb..4346c24 100644
--- a/pactest/tests/upgrade051.py
+++ b/pactest/tests/upgrade051.py
@@ -13,3 +13,5 @@ self.args = "-U %s" % p.filename()
 self.addrule("PACMAN_RETCODE=0")
 self.addrule("!PKG_EXIST=pkg1")
 self.addrule("PKG_EXIST=pkg2")
+
+self.expectfailure = True
-- 
1.5.6.4


_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to