Commit | Line | Data |
---|---|---|
0235b0db | 1 | # SPDX-License-Identifier: GPL-2.0-only |
d2d857a8 MJ |
2 | # |
3 | # Copyright (C) 2019 EfficiOS Inc. | |
4 | # | |
d2d857a8 | 5 | |
9cf643d1 | 6 | import unittest |
5995b304 | 7 | |
f0a42b33 | 8 | import utils |
f0a42b33 | 9 | from bt2 import trace as bt2_trace |
f0a42b33 | 10 | from bt2 import value as bt2_value |
5995b304 | 11 | from bt2 import stream as bt2_stream |
f0a42b33 | 12 | from bt2 import stream_class as bt2_stream_class |
5995b304 | 13 | from utils import run_in_component_init |
9cf643d1 PP |
14 | |
15 | ||
16 | class StreamTestCase(unittest.TestCase): | |
17 | def setUp(self): | |
af4bbfc7 SM |
18 | def f(comp_self): |
19 | return comp_self._create_trace_class() | |
9cf643d1 | 20 | |
af4bbfc7 SM |
21 | self._tc = run_in_component_init(f) |
22 | self._sc = self._tc.create_stream_class(assigns_automatic_stream_id=True) | |
23 | self._tr = self._tc() | |
811644b8 | 24 | |
af4bbfc7 SM |
25 | def test_create_default(self): |
26 | stream = self._tr.create_stream(self._sc) | |
27 | self.assertIsNone(stream.name) | |
f0a42b33 | 28 | self.assertIs(type(stream), bt2_stream._Stream) |
5783664e | 29 | self.assertEqual(len(stream.user_attributes), 0) |
9cf643d1 | 30 | |
af4bbfc7 | 31 | def test_name(self): |
f5567ea8 FD |
32 | stream = self._tr.create_stream(self._sc, name="équidistant") |
33 | self.assertEqual(stream.name, "équidistant") | |
9cf643d1 | 34 | |
af4bbfc7 SM |
35 | def test_invalid_name(self): |
36 | with self.assertRaises(TypeError): | |
37 | self._tr.create_stream(self._sc, name=22) | |
9cf643d1 | 38 | |
5783664e | 39 | def test_create_user_attributes(self): |
f5567ea8 FD |
40 | stream = self._tr.create_stream(self._sc, user_attributes={"salut": 23}) |
41 | self.assertEqual(stream.user_attributes, {"salut": 23}) | |
f0a42b33 FD |
42 | self.assertIs(type(stream.user_attributes), bt2_value.MapValue) |
43 | ||
44 | def test_const_user_attributes(self): | |
45 | stream = utils.get_const_stream_beginning_message().stream | |
f5567ea8 | 46 | self.assertEqual(stream.user_attributes, {"salut": 23}) |
f0a42b33 | 47 | self.assertIs(type(stream.user_attributes), bt2_value._MapValueConst) |
5783664e PP |
48 | |
49 | def test_create_invalid_user_attributes(self): | |
50 | with self.assertRaises(TypeError): | |
51 | self._tr.create_stream(self._sc, user_attributes=object()) | |
52 | ||
53 | def test_create_invalid_user_attributes_value_type(self): | |
54 | with self.assertRaises(TypeError): | |
55 | self._tr.create_stream(self._sc, user_attributes=23) | |
56 | ||
af4bbfc7 SM |
57 | def test_stream_class(self): |
58 | stream = self._tr.create_stream(self._sc) | |
e8ac1aae | 59 | self.assertEqual(stream.cls, self._sc) |
f0a42b33 FD |
60 | self.assertIs(type(stream.cls), bt2_stream_class._StreamClass) |
61 | ||
62 | def test_const_stream_class(self): | |
63 | stream = utils.get_const_stream_beginning_message().stream | |
64 | self.assertIs(type(stream.cls), bt2_stream_class._StreamClassConst) | |
9cf643d1 | 65 | |
e071d36f FD |
66 | def test_trace(self): |
67 | stream = self._tr.create_stream(self._sc) | |
68 | self.assertEqual(stream.trace.addr, self._tr.addr) | |
f0a42b33 FD |
69 | self.assertIs(type(stream.trace), bt2_trace._Trace) |
70 | ||
71 | def test_const_trace(self): | |
72 | stream = utils.get_const_stream_beginning_message().stream | |
73 | self.assertIs(type(stream.trace), bt2_trace._TraceConst) | |
e071d36f | 74 | |
af4bbfc7 SM |
75 | def test_invalid_id(self): |
76 | sc = self._tc.create_stream_class(assigns_automatic_stream_id=False) | |
9cf643d1 | 77 | |
af4bbfc7 | 78 | with self.assertRaises(TypeError): |
f5567ea8 | 79 | self._tr.create_stream(sc, id="string") |
d14ddbba SM |
80 | |
81 | ||
f5567ea8 | 82 | if __name__ == "__main__": |
d14ddbba | 83 | unittest.main() |