Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / build / android / pylib / base / base_test_result_unittest.py
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 testGetLongForm(self):
65     long_print = ('ALL (5 tests)\n'
66                   'PASS (2 tests)\n'
67                   'FAIL (1 tests): [f1]\n'
68                   'CRASH (1 tests): [c1]\n'
69                   'TIMEOUT (0 tests): []\n'
70                   'UNKNOWN (1 tests): [u1]')
71     self.assertEqual(self.tr.GetLongForm(), long_print)
72
73   def testRunPassed(self):
74     self.assertFalse(self.tr.DidRunPass())
75     tr2 = TestRunResults()
76     self.assertTrue(tr2.DidRunPass())
77
78
79 if __name__ == '__main__':
80   unittest.main()