1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 """Unittests for TestRunResults.""" 6 7 import unittest 8 9 from pylib.base.base_test_result import BaseTestResult 10 from pylib.base.base_test_result import TestRunResults 11 from pylib.base.base_test_result import ResultType 12 13 14 class TestTestRunResults(unittest.TestCase): 15 def setUp(self): 16 self.p1 = BaseTestResult('p1', ResultType.PASS, log='pass1') 17 other_p1 = BaseTestResult('p1', ResultType.PASS) 18 self.p2 = BaseTestResult('p2', ResultType.PASS) 19 self.f1 = BaseTestResult('f1', ResultType.FAIL, log='failure1') 20 self.c1 = BaseTestResult('c1', ResultType.CRASH, log='crash1') 21 self.u1 = BaseTestResult('u1', ResultType.UNKNOWN) 22 self.tr = TestRunResults() 23 self.tr.AddResult(self.p1) 24 self.tr.AddResult(other_p1) 25 self.tr.AddResult(self.p2) 26 self.tr.AddResults(set([self.f1, self.c1, self.u1])) 27 28 def testGetAll(self): 29 self.assertFalse( 30 self.tr.GetAll().symmetric_difference( 31 [self.p1, self.p2, self.f1, self.c1, self.u1])) 32 33 def testGetPass(self): 34 self.assertFalse(self.tr.GetPass().symmetric_difference( 35 [self.p1, self.p2])) 36 37 def testGetNotPass(self): 38 self.assertFalse(self.tr.GetNotPass().symmetric_difference( 39 [self.f1, self.c1, self.u1])) 40 41 def testGetAddTestRunResults(self): 42 tr2 = TestRunResults() 43 other_p1 = BaseTestResult('p1', ResultType.PASS) 44 f2 = BaseTestResult('f2', ResultType.FAIL) 45 tr2.AddResult(other_p1) 46 tr2.AddResult(f2) 47 tr2.AddTestRunResults(self.tr) 48 self.assertFalse( 49 tr2.GetAll().symmetric_difference( 50 [self.p1, self.p2, self.f1, self.c1, self.u1, f2])) 51 52 def testGetLogs(self): 53 log_print = ('[FAIL] f1:\n' 54 'failure1\n' 55 '[CRASH] c1:\n' 56 'crash1') 57 self.assertEqual(self.tr.GetLogs(), log_print) 58 59 def testGetShortForm(self): 60 short_print = ('ALL: 5 PASS: 2 FAIL: 1 ' 61 'CRASH: 1 TIMEOUT: 0 UNKNOWN: 1 ') 62 self.assertEqual(self.tr.GetShortForm(), short_print) 63 64 def testGetGtestForm(self): 65 gtest_print = ('[==========] 5 tests ran.\n' 66 '[ PASSED ] 2 tests.\n' 67 '[ FAILED ] 3 tests, listed below:\n' 68 '[ FAILED ] f1\n' 69 '[ FAILED ] c1 (CRASHED)\n' 70 '[ FAILED ] u1 (UNKNOWN)\n' 71 '\n' 72 '3 FAILED TESTS') 73 self.assertEqual(gtest_print, self.tr.GetGtestForm()) 74 75 def testRunPassed(self): 76 self.assertFalse(self.tr.DidRunPass()) 77 tr2 = TestRunResults() 78 self.assertTrue(tr2.DidRunPass()) 79 80 81 if __name__ == '__main__': 82 unittest.main() 83