3 from utils
import run_in_component_init
6 class StreamClassTestCase(unittest
.TestCase
):
9 tc
= comp_self
._create
_trace
_class
(assigns_automatic_stream_class_id
=True)
10 cc
= comp_self
._create
_clock
_class
()
13 self
._tc
, self
._cc
= run_in_component_init(f
)
14 self
._trace
= self
._tc
()
16 def test_create_default(self
):
17 sc
= self
._tc
.create_stream_class()
19 self
.assertIsNone(sc
.name
)
20 self
.assertIsNone(sc
.packet_context_field_class
)
21 self
.assertIsNone(sc
.event_common_context_field_class
)
22 self
.assertIsNone(sc
.default_clock_class
)
23 self
.assertTrue(sc
.assigns_automatic_event_class_id
)
24 self
.assertTrue(sc
.assigns_automatic_stream_id
)
25 self
.assertFalse(sc
.packets_have_default_beginning_clock_snapshot
)
26 self
.assertFalse(sc
.packets_have_default_end_clock_snapshot
)
28 def test_create_name(self
):
29 sc
= self
._tc
.create_stream_class(name
='bozo')
30 self
.assertEqual(sc
.name
, 'bozo')
32 def test_create_invalid_name(self
):
33 with self
.assertRaises(TypeError):
34 self
._tc
.create_stream_class(name
=17)
36 def test_create_packet_context_field_class(self
):
37 fc
= self
._tc
.create_structure_field_class()
38 sc
= self
._tc
.create_stream_class(packet_context_field_class
=fc
)
39 self
.assertEqual(sc
.packet_context_field_class
, fc
)
41 def test_create_invalid_packet_context_field_class(self
):
42 with self
.assertRaises(TypeError):
43 self
._tc
.create_stream_class(packet_context_field_class
=22)
45 def test_create_event_common_context_field_class(self
):
46 fc
= self
._tc
.create_structure_field_class()
47 sc
= self
._tc
.create_stream_class(event_common_context_field_class
=fc
)
48 self
.assertEqual(sc
.event_common_context_field_class
, fc
)
50 def test_create_invalid_event_common_context_field_class(self
):
51 with self
.assertRaises(TypeError):
52 self
._tc
.create_stream_class(event_common_context_field_class
=22)
54 def test_create_default_clock_class(self
):
55 sc
= self
._tc
.create_stream_class(default_clock_class
=self
._cc
)
56 self
.assertEqual(sc
.default_clock_class
.addr
, self
._cc
.addr
)
58 def test_create_invalid_default_clock_class(self
):
59 with self
.assertRaises(TypeError):
60 self
._tc
.create_stream_class(default_clock_class
=12)
62 def test_automatic_stream_ids(self
):
63 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=True)
64 self
.assertTrue(sc
.assigns_automatic_stream_id
)
66 stream
= self
._trace
.create_stream(sc
)
67 self
.assertIsNotNone(stream
.id)
69 def test_automatic_stream_ids_raises(self
):
70 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=True)
71 self
.assertTrue(sc
.assigns_automatic_stream_id
)
73 with self
.assertRaises(bt2
.CreationError
):
74 self
._trace
.create_stream(sc
, id=123)
76 def test_no_automatic_stream_ids(self
):
77 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=False)
78 self
.assertFalse(sc
.assigns_automatic_stream_id
)
80 stream
= self
._trace
.create_stream(sc
, id=333)
81 self
.assertEqual(stream
.id, 333)
83 def test_no_automatic_stream_ids_raises(self
):
84 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=False)
85 self
.assertFalse(sc
.assigns_automatic_stream_id
)
87 with self
.assertRaises(bt2
.CreationError
):
88 self
._trace
.create_stream(sc
)
90 def test_automatic_event_class_ids(self
):
91 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=True)
92 self
.assertTrue(sc
.assigns_automatic_event_class_id
)
94 ec
= sc
.create_event_class()
95 self
.assertIsNotNone(ec
.id)
97 def test_automatic_event_class_ids_raises(self
):
98 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=True)
99 self
.assertTrue(sc
.assigns_automatic_event_class_id
)
101 with self
.assertRaises(bt2
.CreationError
):
102 sc
.create_event_class(id=123)
104 def test_no_automatic_event_class_ids(self
):
105 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=False)
106 self
.assertFalse(sc
.assigns_automatic_event_class_id
)
108 ec
= sc
.create_event_class(id=333)
109 self
.assertEqual(ec
.id, 333)
111 def test_no_automatic_event_class_ids_raises(self
):
112 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=False)
113 self
.assertFalse(sc
.assigns_automatic_event_class_id
)
115 with self
.assertRaises(bt2
.CreationError
):
116 sc
.create_event_class()
118 def test_packets_have_default_beginning_clock_snapshot(self
):
119 sc
= self
._tc
.create_stream_class(default_clock_class
=self
._cc
, packets_have_default_beginning_clock_snapshot
=True)
120 self
.assertTrue(sc
.packets_have_default_beginning_clock_snapshot
)
122 def test_packets_have_default_beginning_clock_snapshot_raises(self
):
123 with self
.assertRaises(TypeError):
124 sc
= self
._tc
.create_stream_class(packets_have_default_beginning_clock_snapshot
="something")
126 def test_packets_have_default_end_clock_snapshot(self
):
127 sc
= self
._tc
.create_stream_class(default_clock_class
=self
._cc
, packets_have_default_end_clock_snapshot
=True)
128 self
.assertTrue(sc
.packets_have_default_end_clock_snapshot
)
130 def test_packets_have_default_end_clock_snapshot_raises(self
):
131 with self
.assertRaises(TypeError):
132 sc
= self
._tc
.create_stream_class(packets_have_default_end_clock_snapshot
="something")
134 def test_trace_class(self
):
135 sc
= self
._tc
.create_stream_class()
136 self
.assertEqual(sc
.trace_class
.addr
, self
._tc
.addr
)
138 def _create_stream_class_with_event_classes(self
):
139 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=False)
140 ec1
= sc
.create_event_class(id=23)
141 ec2
= sc
.create_event_class(id=17)
144 def test_getitem(self
):
145 sc
, ec1
, ec2
= self
._create
_stream
_class
_with
_event
_classes
()
147 self
.assertEqual(sc
[23].addr
, ec1
.addr
)
148 self
.assertEqual(sc
[17].addr
, ec2
.addr
)
150 def test_getitem_wrong_key_type(self
):
151 sc
, _
, _
= self
._create
_stream
_class
_with
_event
_classes
()
153 with self
.assertRaises(TypeError):
156 def test_getitem_wrong_key(self
):
157 sc
, _
, _
= self
._create
_stream
_class
_with
_event
_classes
()
159 with self
.assertRaises(KeyError):
163 sc
, _
, _
= self
._create
_stream
_class
_with
_event
_classes
()
165 self
.assertEqual(len(sc
), 2)
168 sc
, _
, _
= self
._create
_stream
_class
_with
_event
_classes
()
171 self
.assertEqual(ec_ids
, [17, 23])