Tests: initial test framework implementation
[deliverable/lttng-analyses.git] / tests / test_cputop.py
1 #!/usr/bin/env python3
2
3 from TraceTest import AnalyzesTest
4 import sys
5
6
7 class CpuTest(AnalyzesTest):
8 def __init__(self, delete_trace=True, verbose=False):
9 super().__init__(delete_trace=delete_trace,
10 verbose=verbose)
11 self.test_list = [('cputop', self.run_no_option)]
12
13 def write_trace(self):
14 # runs the whole time: 100%
15 self.t.write_sched_switch(1000, 5, "swapper/5", 0, "prog100pc-cpu5", 42)
16 # runs for 2s alternating with swapper out every 100ms
17 self.t.sched_switch_50pc(1100, 5000, 0, 100,
18 "swapper/0", 0, "prog20pc-cpu0", 30664)
19 # runs for 2.5s alternating with swapper out every 100ms
20 self.t.sched_switch_50pc(5100, 10000, 1, 100,
21 "swapper/1", 0, "prog25pc-cpu1", 30665)
22 # switch out prog100pc-cpu5
23 self.t.write_sched_switch(11000, 5, "prog100pc-cpu5", 42, "swapper/5", 0)
24 self.t.flush()
25
26 def run_no_option(self):
27 expected = """Timerange: [1969-12-31 19:00:01.000000000, 1969-12-31 19:00:11.000000000]
28 Per-TID CPU Usage
29 ###############################################################################
30 ██████████████████████████████████████████████████ 100.00 % prog100pc-cpu5 (42) (prio: 20)
31 ████████████ 25.00 % prog25pc-cpu1 (30665) (prio: 20)
32 ██████████ 20.00 % prog20pc-cpu0 (30664) (prio: 20)
33 Per-CPU Usage
34 ###############################################################################
35 █████████████ 20.00 % CPU 0
36 ████████████████ 25.00 % CPU 1
37 █████████████████████████████████████████████████████████████████ 100.00 % CPU 5
38
39 Total CPU Usage: 48.33%
40 """
41
42 return self.compare_output('%slttng-cputop %s "%s"' % (
43 self.cmd_root, self.common_options, self.t.get_trace_root()),
44 expected)
45
46
47 def test_answer():
48 t = CpuTest(verbose=True)
49 ok = t.run()
50 assert(ok)
This page took 0.042028 seconds and 6 git commands to generate.