tests: Move data files to a common directory
[babeltrace.git] / tests / bindings / python / bt2 / test_trace.py
CommitLineData
9cf643d1 1import unittest
f377a958 2from utils import get_default_trace_class
9cf643d1
PP
3
4
5class TraceTestCase(unittest.TestCase):
6 def setUp(self):
f377a958 7 self._tc = get_default_trace_class()
9cf643d1
PP
8
9 def test_create_default(self):
f377a958
SM
10 trace = self._tc()
11 self.assertEqual(trace.name, None)
f6a5e476
PP
12
13 def test_create_full(self):
f377a958
SM
14 trace = self._tc(name='my name')
15 self.assertEqual(trace.name, 'my name')
9cf643d1 16
f377a958 17 def test_create_invalid_name(self):
9cf643d1 18 with self.assertRaises(TypeError):
f377a958 19 self._tc(name=17)
9cf643d1 20
a7f0580d
PP
21 def test_attr_trace_class(self):
22 trace = self._tc(name='my name')
23 self.assertEqual(trace.cls.addr, self._tc.addr)
24
f377a958
SM
25 def test_len(self):
26 trace = self._tc()
27 sc = self._tc.create_stream_class()
28 self.assertEqual(len(trace), 0)
9cf643d1 29
f377a958
SM
30 trace.create_stream(sc)
31 self.assertEqual(len(trace), 1)
9cf643d1 32
f377a958
SM
33 def _create_trace_with_some_streams(self):
34 sc = self._tc.create_stream_class(assigns_automatic_stream_id=False)
35 trace = self._tc()
36 trace.create_stream(sc, id=12)
37 trace.create_stream(sc, id=15)
38 trace.create_stream(sc, id=17)
9cf643d1 39
f377a958 40 return trace
9cf643d1
PP
41
42 def test_iter(self):
f377a958
SM
43 trace = self._create_trace_with_some_streams()
44 stream_ids = set(trace)
45 self.assertEqual(stream_ids, {12, 15, 17})
9cf643d1 46
f377a958
SM
47 def test_getitem(self):
48 trace = self._create_trace_with_some_streams()
9cf643d1 49
f377a958 50 self.assertEqual(trace[12].id, 12)
9cf643d1 51
f377a958
SM
52 def test_getitem_invalid_key(self):
53 trace = self._create_trace_with_some_streams()
9cf643d1 54 with self.assertRaises(KeyError):
f377a958 55 trace[18]
9cf643d1 56
f377a958
SM
57 def test_destruction_listener(self):
58 def on_trace_class_destruction(trace_class):
59 nonlocal trace_class_destroyed
60 trace_class_destroyed = True
f6a5e476 61
f377a958
SM
62 def on_trace_destruction(trace):
63 nonlocal trace_destroyed
64 trace_destroyed = True
f6a5e476 65
f377a958
SM
66 trace_destroyed = False
67 trace_class_destroyed = False
f6a5e476 68
f377a958
SM
69 trace_class = get_default_trace_class()
70 stream_class = trace_class.create_stream_class()
71 trace = trace_class()
72 stream = trace.create_stream(stream_class)
f6a5e476 73
f377a958
SM
74 trace_class.add_destruction_listener(on_trace_class_destruction)
75 trace.add_destruction_listener(on_trace_destruction)
f6a5e476 76
f377a958
SM
77 self.assertFalse(trace_class_destroyed)
78 self.assertFalse(trace_destroyed)
9cf643d1 79
f377a958 80 del trace
9cf643d1 81
f377a958
SM
82 self.assertFalse(trace_class_destroyed)
83 self.assertFalse(trace_destroyed)
9cf643d1 84
f377a958 85 del stream
9cf643d1 86
f377a958
SM
87 self.assertFalse(trace_class_destroyed)
88 self.assertTrue(trace_destroyed)
9cf643d1 89
f377a958 90 del trace_class
9cf643d1 91
f377a958
SM
92 self.assertFalse(trace_class_destroyed)
93 self.assertTrue(trace_destroyed)
9cf643d1 94
f377a958 95 del stream_class
9cf643d1 96
f377a958
SM
97 self.assertTrue(trace_class_destroyed)
98 self.assertTrue(trace_destroyed)
This page took 0.042049 seconds and 4 git commands to generate.