• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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