blob: 7c5b2b4709bdbe1249e7a36839febf25f0a3ab67 [file] [log] [blame]
Mike Frysingerd03e6b52019-08-03 12:49:01 -04001#!/usr/bin/python2
jadmanski61cf6e72008-11-14 23:42:10 +00002
3import unittest
4import common
jadmanski043e1132008-11-19 17:10:32 +00005from autotest_lib.client.common_lib import profiler_manager
jadmanski61cf6e72008-11-14 23:42:10 +00006
7
8# simple job stub for using in tests
9class stub_job(object):
10 tmpdir = "/home/autotest/tmp"
11 autodir = "/home/autotest"
12
13
14# simple profiler stub for using in tests
15class stub_profiler(object):
16 started = 0
17 def __init__(self, name):
18 self.name = name
19 @classmethod
20 def start(cls, test):
21 cls.started += 1
22 @classmethod
23 def stop(cls, test):
24 cls.started -= 1
25
26
jadmanski043e1132008-11-19 17:10:32 +000027# replace profiler_manager.load_profiler with a simple stub
28class stub_manager(profiler_manager.profiler_manager):
29 def load_profiler(self, profiler, args, dargs):
jadmanski61cf6e72008-11-14 23:42:10 +000030 return stub_profiler(profiler)
jadmanski61cf6e72008-11-14 23:42:10 +000031
32
jadmanski043e1132008-11-19 17:10:32 +000033class TestProfilerManager(unittest.TestCase):
jadmanski61cf6e72008-11-14 23:42:10 +000034 def test_starts_with_no_profilers(self):
jadmanski043e1132008-11-19 17:10:32 +000035 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000036 self.assertEqual(set(), p.current_profilers())
37
38
39 def test_single_add(self):
jadmanski043e1132008-11-19 17:10:32 +000040 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000041 p.add("prof1")
42 self.assertEqual(set(["prof1"]), p.current_profilers())
43
44
45 def test_duplicate_adds(self):
jadmanski043e1132008-11-19 17:10:32 +000046 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000047 p.add("prof1")
48 p.add("prof1")
49 self.assertEqual(set(["prof1"]), p.current_profilers())
50
51
52 def test_multiple_adds(self):
jadmanski043e1132008-11-19 17:10:32 +000053 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000054 p.add("prof1")
55 p.add("prof2")
56 self.assertEqual(set(["prof1", "prof2"]), p.current_profilers())
57
58
59 def test_add_and_delete(self):
jadmanski043e1132008-11-19 17:10:32 +000060 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000061 p.add("prof1")
62 p.add("prof2")
63 p.delete("prof1")
64 self.assertEqual(set(["prof2"]), p.current_profilers())
65
66
67 def test_present_with_no_profilers(self):
jadmanski043e1132008-11-19 17:10:32 +000068 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000069 self.assertEqual(False, p.present())
70
71
72 def test_present_after_add(self):
jadmanski043e1132008-11-19 17:10:32 +000073 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000074 p.add("prof1")
75 self.assertEqual(True, p.present())
76
77
78 def test_present_after_add_and_remove(self):
jadmanski043e1132008-11-19 17:10:32 +000079 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000080 p.add("prof1")
81 p.delete("prof1")
82 self.assertEqual(False, p.present())
83
84
85 def test_started(self):
jadmanski043e1132008-11-19 17:10:32 +000086 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000087 p.add("prof1")
88 p.add("prof2")
89 started = stub_profiler.started
90 self.assertEqual(False, p.active())
91 p.start(object())
92 self.assertEqual(started + 2, stub_profiler.started)
93 self.assertEqual(True, p.active())
94
95
96 def test_stop(self):
jadmanski043e1132008-11-19 17:10:32 +000097 p = stub_manager(stub_job)
jadmanski61cf6e72008-11-14 23:42:10 +000098 p.add("prof1")
99 p.add("prof2")
100 started = stub_profiler.started
101 self.assertEqual(False, p.active())
102 test = object()
103 p.start(test)
104 p.stop(test)
105 self.assertEqual(started, stub_profiler.started)
106 self.assertEqual(False, p.active())
107
108
109
110if __name__ == "__main__":
111 unittest.main()