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