Fix: tests: create correct field class in bt_plugin_test_debug_info.py
[babeltrace.git] / tests / data / plugins / flt.lttng-utils.debug-info / bt_plugin_test_debug_info.py
CommitLineData
0235b0db
MJ
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Copyright (C) 2019 EfficiOS Inc.
4#
5
8cca03c6
FD
6import bt2
7import math
8
9bt2.register_plugin(__name__, "test_debug_info")
10
11
12class CompleteIter(bt2._UserMessageIterator):
13 def __init__(self, config, output_port):
14 ec = output_port.user_data
15 sc = ec.stream_class
16 tc = sc.trace_class
17
18 trace = tc()
19 stream = trace.create_stream(sc)
20
21 ev = self._create_event_message(ec, stream, default_clock_snapshot=123)
22
23 ev.event.payload_field["bool"] = False
24 ev.event.payload_field["real_single"] = 2.0
25 ev.event.payload_field["real_double"] = math.pi
26 ev.event.payload_field["int32"] = 121
27 ev.event.payload_field["int3"] = -1
28 ev.event.payload_field["int9_hex"] = -92
29 ev.event.payload_field["uint32"] = 121
30 ev.event.payload_field["uint61"] = 299792458
31 ev.event.payload_field["uint5_oct"] = 29
32 ev.event.payload_field["struct"]['str'] = "Rotisserie St-Hubert"
33 ev.event.payload_field["struct"]['option_real'] = math.pi
34 ev.event.payload_field["string"] = "🎉"
35 ev.event.payload_field["dyn_array"] = [1.2, 2 / 3, 42.3, math.pi]
36 ev.event.payload_field["dyn_array_len"] = 4
37 ev.event.payload_field["dyn_array_with_len"] = [5.2, 5 / 3, 42.5, math.pi * 12]
38 ev.event.payload_field["sta_array"] = ['🕰', 'ðŸĶī', ' 🎍']
39 ev.event.payload_field["option_none"]
40 ev.event.payload_field["option_some"] = "NORMANDIN"
41 ev.event.payload_field["option_bool_selector"] = True
42 ev.event.payload_field["option_bool"] = "Mike's"
43 ev.event.payload_field["option_int_selector"] = 1
44 ev.event.payload_field["option_int"] = "Barbies resto bar grill"
45 ev.event.payload_field['variant'].selected_option_index = 0
46 ev.event.payload_field["variant"] = "Couche-Tard"
47
48 self._msgs = [
49 self._create_stream_beginning_message(stream),
50 ev,
51 self._create_stream_end_message(stream),
52 ]
53
54 def __next__(self):
55 if len(self._msgs) > 0:
56 return self._msgs.pop(0)
57 else:
58 raise StopIteration
59
60
61@bt2.plugin_component_class
62class CompleteSrc(bt2._UserSourceComponent, message_iterator_class=CompleteIter):
63 def __init__(self, config, params, obj):
64 tc = self._create_trace_class()
65 cc = self._create_clock_class()
66 sc = tc.create_stream_class(default_clock_class=cc)
67
68 dyn_array_elem_fc = tc.create_double_precision_real_field_class()
69 dyn_array_with_len_elem_fc = tc.create_double_precision_real_field_class()
70 dyn_array_with_len_fc = tc.create_unsigned_integer_field_class(19)
71 sta_array_elem_fc = tc.create_string_field_class()
72 option_some_fc = tc.create_string_field_class()
73 variant_fc = tc.create_variant_field_class()
74 variant_fc.append_option(
75 name='var_str', field_class=tc.create_string_field_class()
76 )
77 option_none_fc = tc.create_double_precision_real_field_class()
78 struct_fc = tc.create_structure_field_class()
79 struct_option_fc = tc.create_double_precision_real_field_class()
80 struct_fc.append_member('str', tc.create_string_field_class())
81 struct_fc.append_member(
82 'option_real',
83 tc.create_option_without_selector_field_class(struct_option_fc),
84 )
85 option_bool_selector_fc = tc.create_bool_field_class()
86 option_int_selector_fc = tc.create_unsigned_integer_field_class(8)
87
88 payload = tc.create_structure_field_class()
89 payload += [
90 ("bool", tc.create_bool_field_class()),
91 ("real_single", tc.create_single_precision_real_field_class()),
92 ("real_double", tc.create_double_precision_real_field_class()),
93 ("int32", tc.create_signed_integer_field_class(32)),
94 ("int3", tc.create_signed_integer_field_class(3)),
95 (
96 "int9_hex",
97 tc.create_signed_integer_field_class(
98 9, preferred_display_base=bt2.IntegerDisplayBase.HEXADECIMAL
99 ),
100 ),
101 ("uint32", tc.create_unsigned_integer_field_class(32)),
102 ("uint61", tc.create_unsigned_integer_field_class(61)),
103 (
104 "uint5_oct",
105 tc.create_unsigned_integer_field_class(
106 5, preferred_display_base=bt2.IntegerDisplayBase.OCTAL
107 ),
108 ),
109 ("struct", struct_fc),
110 ("string", tc.create_string_field_class()),
111 ("dyn_array", tc.create_dynamic_array_field_class(dyn_array_elem_fc)),
112 ("dyn_array_len", dyn_array_with_len_fc),
113 (
114 "dyn_array_with_len",
115 tc.create_dynamic_array_field_class(
116 dyn_array_with_len_elem_fc, length_fc=dyn_array_with_len_fc
117 ),
118 ),
52ea9593 119 ("sta_array", tc.create_static_array_field_class(sta_array_elem_fc, 3)),
8cca03c6
FD
120 (
121 "option_none",
122 tc.create_option_without_selector_field_class(option_none_fc),
123 ),
124 (
125 "option_some",
126 tc.create_option_without_selector_field_class(option_some_fc),
127 ),
128 ("option_bool_selector", option_bool_selector_fc),
129 (
130 "option_bool",
131 tc.create_option_with_bool_selector_field_class(
132 tc.create_string_field_class(), option_bool_selector_fc
133 ),
134 ),
135 (
136 "option_bool_reversed",
137 tc.create_option_with_bool_selector_field_class(
138 tc.create_string_field_class(),
139 option_bool_selector_fc,
140 selector_is_reversed=True,
141 ),
142 ),
143 ("option_int_selector", option_int_selector_fc),
144 (
145 "option_int",
146 tc.create_option_with_integer_selector_field_class(
147 tc.create_string_field_class(),
148 option_int_selector_fc,
149 bt2.UnsignedIntegerRangeSet([(1, 3), (18, 44)]),
150 ),
151 ),
152 ("variant", variant_fc),
153 ]
154 ec = sc.create_event_class(name="my-event", payload_field_class=payload)
155
156 self._add_output_port("some-name", ec)
This page took 0.041452 seconds and 4 git commands to generate.