Index: lldb/trunk/lit/Suite/lldbtest.py
===================================================================
--- lldb/trunk/lit/Suite/lldbtest.py
+++ lldb/trunk/lit/Suite/lldbtest.py
@@ -94,11 +94,10 @@
                 litConfig.maxIndividualTestTime))
 
         if exitCode:
-            return lit.Test.FAIL, out + err
-
-        unexpected_test_line = 'XPASS'
-        if unexpected_test_line in out or unexpected_test_line in err:
-            return lit.Test.XPASS, ''
+            if 'FAIL:' in out or 'FAIL:' in err:
+                return lit.Test.FAIL, out + err
+            if 'XPASS:' in out or 'XPASS:' in err:
+                return lit.Test.XPASS, out + err
 
         passing_test_line = 'RESULT: PASSED'
         if passing_test_line not in out and passing_test_line not in err:
Index: lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py
===================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py
@@ -148,7 +148,9 @@
 
     def wasSuccessful(self):
         "Tells whether or not this result was a success"
-        return (len(self.failures) + len(self.errors) == 0)
+        return (len(self.failures) +
+                len(self.errors) +
+                len(self.unexpectedSuccesses) == 0)
 
     def stop(self):
         "Indicates that the tests should be aborted"