Babeltrace python binding
[babeltrace.git] / tests / tests-python.py
1 import unittest
2 import sys
3 from babeltrace import *
4
5 class TestBabeltracePythonModule(unittest.TestCase):
6
7 def test_handle_decl(self):
8 #Context creation, adding trace
9 ctx = Context()
10 trace_handle = ctx.add_trace(
11 "ctf-traces/succeed/lttng-modules-2.0-pre5",
12 "ctf")
13 self.assertIsNotNone(trace_handle, "Error adding trace")
14
15 #TraceHandle test
16 ts_begin = trace_handle.get_timestamp_begin(ctx, CLOCK_REAL)
17 ts_end = trace_handle.get_timestamp_end(ctx, CLOCK_REAL)
18 self.assertGreater(ts_end, ts_begin, "Error get_timestamp from trace_handle")
19
20 lst = ctf.get_event_decl_list(trace_handle, ctx)
21 self.assertIsNotNone(lst, "Error get_event_decl_list")
22
23 name = lst[0].get_name()
24 self.assertIsNotNone(name)
25
26 fields = lst[0].get_decl_fields(ctf.scope.EVENT_FIELDS)
27 self.assertIsNotNone(fields, "Error getting FieldDecl list")
28
29 if len(fields) > 0:
30 self.assertIsNotNone(fields[0].get_name(),
31 "Error getting name from FieldDecl")
32
33 #Remove trace
34 ctx.remove_trace(trace_handle)
35 del ctx
36 del trace_handle
37
38
39 def test_iterator_event(self):
40 #Context creation, adding trace
41 ctx = Context()
42 trace_handle = ctx.add_trace(
43 "ctf-traces/succeed/lttng-modules-2.0-pre5",
44 "ctf")
45 self.assertIsNotNone(trace_handle, "Error adding trace")
46
47 begin_pos = IterPos(SEEK_BEGIN)
48 it = ctf.Iterator(ctx, begin_pos)
49 self.assertIsNotNone(it, "Error creating iterator")
50
51 event = it.read_event()
52 self.assertIsNotNone(event, "Error reading event")
53
54 handle = event.get_handle()
55 self.assertIsNotNone(handle, "Error getting handle")
56
57 context = event.get_context()
58 self.assertIsNotNone(context, "Error getting context")
59
60 name = ""
61 while event is not None and name != "sched_switch":
62 name = event.get_name()
63 self.assertIsNotNone(name, "Error getting event name")
64
65 ts = event.get_timestamp()
66 self.assertGreaterEqual(ts, 0, "Error getting timestamp")
67
68 cycles = event.get_cycles()
69 self.assertGreaterEqual(cycles, 0, "Error getting cycles")
70
71 if name == "sched_switch":
72 scope = event.get_top_level_scope(ctf.scope.STREAM_PACKET_CONTEXT)
73 self.assertIsNotNone(scope, "Error getting scope definition")
74
75 field = event.get_field(scope, "cpu_id")
76 prev_comm_str = field.get_uint64()
77 self.assertEqual(ctf.field_error(), 0, "Error getting vec info")
78
79 field_lst = event.get_field_list(scope)
80 self.assertIsNotNone(field_lst, "Error getting field list")
81
82 fname = field.field_name()
83 self.assertIsNotNone(fname, "Error getting field name")
84
85 ftype = field.field_type()
86 self.assertIsNot(ftype, -1, "Error getting field type (unknown)")
87
88 ret = it.next()
89 self.assertGreaterEqual(ret, 0, "Error moving iterator")
90
91 event = it.read_event()
92
93 pos = it.get_pos()
94 self.assertIsNotNone(pos._pos, "Error getting iterator position")
95
96 ret = it.set_pos(pos)
97 self.assertEqual(ret, 0, "Error setting iterator position")
98
99 pos = it.create_time_pos(ts)
100 self.assertIsNotNone(pos._pos, "Error creating time-based iterator position")
101
102 del it, pos
103 set_pos = IterPos(SEEK_TIME, ts)
104 it = ctf.Iterator(ctx, begin_pos, set_pos)
105 self.assertIsNotNone(it, "Error creating iterator with end_pos")
106
107
108 def test_file_class(self):
109 f = File("test-bitfield.c")
110 self.assertIsNotNone(f, "Error opening file")
111 f.close()
112
113
114 if __name__ == "__main__":
115 unittest.main()
This page took 0.030866 seconds and 4 git commands to generate.