Commit | Line | Data |
---|---|---|
f611d0c3 MD |
1 | // SPDX-License-Identifier: MIT |
2 | /* | |
3 | * Copyright 2022 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
4 | */ | |
5 | ||
6 | #include <stdint.h> | |
7 | #include <inttypes.h> | |
8 | #include <stdlib.h> | |
9 | #include <stdio.h> | |
4f40d951 | 10 | #include <stdbool.h> |
f611d0c3 MD |
11 | |
12 | #include <side/trace.h> | |
13 | #include "tracer.h" | |
14 | ||
15 | /* User code example */ | |
16 | ||
89747802 | 17 | side_static_event(my_provider_event, "myprovider", "myevent", SIDE_LOGLEVEL_DEBUG, |
f611d0c3 | 18 | side_field_list( |
485b800a MD |
19 | side_field_u32("abc", side_attr_list()), |
20 | side_field_s64("def", side_attr_list()), | |
f5e650d7 | 21 | side_field_pointer("ptr", side_attr_list()), |
485b800a | 22 | side_field_dynamic("dynamic", side_attr_list()), |
d8107f01 | 23 | side_field_dynamic("dynamic_pointer", side_attr_list()), |
399c836b MD |
24 | ), |
25 | side_attr_list() | |
f611d0c3 MD |
26 | ); |
27 | ||
28 | static | |
29 | void test_fields(void) | |
30 | { | |
31 | uint32_t uw = 42; | |
32 | int64_t sdw = -500; | |
33 | ||
f5e650d7 MD |
34 | side_event(my_provider_event, |
35 | side_arg_list( | |
36 | side_arg_u32(uw), | |
37 | side_arg_s64(sdw), | |
38 | side_arg_pointer((void *) 0x1), | |
39 | side_arg_dynamic(side_arg_dynamic_string("zzz", side_attr_list())), | |
d8107f01 | 40 | side_arg_dynamic(side_arg_dynamic_pointer((void *) 0x1, side_attr_list())), |
f5e650d7 MD |
41 | ) |
42 | ); | |
f611d0c3 MD |
43 | } |
44 | ||
89747802 MD |
45 | side_hidden_event(my_provider_event_hidden, "myprovider", "myeventhidden", SIDE_LOGLEVEL_DEBUG, |
46 | side_field_list( | |
47 | side_field_u32("abc", side_attr_list()), | |
48 | ), | |
49 | side_attr_list() | |
50 | ); | |
51 | ||
52 | static | |
53 | void test_event_hidden(void) | |
54 | { | |
89747802 MD |
55 | side_event(my_provider_event_hidden, side_arg_list(side_arg_u32(2))); |
56 | } | |
57 | ||
58 | side_declare_event(my_provider_event_export); | |
59 | ||
60 | side_export_event(my_provider_event_export, "myprovider", "myeventexport", SIDE_LOGLEVEL_DEBUG, | |
61 | side_field_list( | |
62 | side_field_u32("abc", side_attr_list()), | |
63 | ), | |
64 | side_attr_list() | |
65 | ); | |
66 | ||
67 | static | |
68 | void test_event_export(void) | |
69 | { | |
89747802 MD |
70 | side_event(my_provider_event_export, side_arg_list(side_arg_u32(2))); |
71 | } | |
72 | ||
73 | side_static_event(my_provider_event_struct_literal, "myprovider", "myeventstructliteral", SIDE_LOGLEVEL_DEBUG, | |
f611d0c3 | 74 | side_field_list( |
c7a14585 MD |
75 | side_field_struct("structliteral", |
76 | side_struct_literal( | |
77 | side_field_list( | |
78 | side_field_u32("x", side_attr_list()), | |
79 | side_field_s64("y", side_attr_list()), | |
80 | ), | |
81 | side_attr_list() | |
82 | ) | |
f611d0c3 | 83 | ), |
485b800a | 84 | side_field_u8("z", side_attr_list()), |
399c836b MD |
85 | ), |
86 | side_attr_list() | |
f611d0c3 MD |
87 | ); |
88 | ||
c7a14585 MD |
89 | static |
90 | void test_struct_literal(void) | |
91 | { | |
c7a14585 MD |
92 | side_event_cond(my_provider_event_struct_literal) { |
93 | side_arg_define_vec(mystruct, side_arg_list(side_arg_u32(21), side_arg_s64(22))); | |
94 | side_event_call(my_provider_event_struct_literal, side_arg_list(side_arg_struct(&mystruct), side_arg_u8(55))); | |
95 | } | |
96 | } | |
97 | ||
98 | static side_define_struct(mystructdef, | |
99 | side_field_list( | |
100 | side_field_u32("x", side_attr_list()), | |
101 | side_field_s64("y", side_attr_list()), | |
102 | ), | |
103 | side_attr_list() | |
104 | ); | |
105 | ||
89747802 | 106 | side_static_event(my_provider_event_struct, "myprovider", "myeventstruct", SIDE_LOGLEVEL_DEBUG, |
c7a14585 MD |
107 | side_field_list( |
108 | side_field_struct("struct", &mystructdef), | |
109 | side_field_u8("z", side_attr_list()), | |
110 | ), | |
111 | side_attr_list() | |
112 | ); | |
113 | ||
f611d0c3 MD |
114 | static |
115 | void test_struct(void) | |
116 | { | |
c7a14585 | 117 | side_event_cond(my_provider_event_struct) { |
f611d0c3 | 118 | side_arg_define_vec(mystruct, side_arg_list(side_arg_u32(21), side_arg_s64(22))); |
c7a14585 | 119 | side_event_call(my_provider_event_struct, side_arg_list(side_arg_struct(&mystruct), side_arg_u8(55))); |
f611d0c3 MD |
120 | } |
121 | } | |
122 | ||
89747802 | 123 | side_static_event(my_provider_event_array, "myprovider", "myarray", SIDE_LOGLEVEL_DEBUG, |
f611d0c3 | 124 | side_field_list( |
9a55f555 | 125 | side_field_array("arr", side_elem(side_type_u32(side_attr_list())), 3, side_attr_list()), |
485b800a | 126 | side_field_s64("v", side_attr_list()), |
399c836b MD |
127 | ), |
128 | side_attr_list() | |
f611d0c3 MD |
129 | ); |
130 | ||
131 | static | |
132 | void test_array(void) | |
133 | { | |
d5cdb129 | 134 | side_event_cond(my_provider_event_array) { |
f611d0c3 | 135 | side_arg_define_vec(myarray, side_arg_list(side_arg_u32(1), side_arg_u32(2), side_arg_u32(3))); |
d5cdb129 | 136 | side_event_call(my_provider_event_array, side_arg_list(side_arg_array(&myarray), side_arg_s64(42))); |
f611d0c3 MD |
137 | } |
138 | } | |
139 | ||
89747802 | 140 | side_static_event(my_provider_event_vla, "myprovider", "myvla", SIDE_LOGLEVEL_DEBUG, |
f611d0c3 | 141 | side_field_list( |
9a55f555 | 142 | side_field_vla("vla", side_elem(side_type_u32(side_attr_list())), side_attr_list()), |
485b800a | 143 | side_field_s64("v", side_attr_list()), |
399c836b MD |
144 | ), |
145 | side_attr_list() | |
f611d0c3 MD |
146 | ); |
147 | ||
148 | static | |
149 | void test_vla(void) | |
150 | { | |
d5cdb129 | 151 | side_event_cond(my_provider_event_vla) { |
f611d0c3 | 152 | side_arg_define_vec(myvla, side_arg_list(side_arg_u32(1), side_arg_u32(2), side_arg_u32(3))); |
d5cdb129 | 153 | side_event_call(my_provider_event_vla, side_arg_list(side_arg_vla(&myvla), side_arg_s64(42))); |
f611d0c3 MD |
154 | } |
155 | } | |
156 | ||
cdd6e858 MD |
157 | /* 1D array visitor */ |
158 | ||
f611d0c3 MD |
159 | struct app_visitor_ctx { |
160 | const uint32_t *ptr; | |
352a4b77 | 161 | uint32_t length; |
f611d0c3 MD |
162 | }; |
163 | ||
352a4b77 MD |
164 | static |
165 | enum side_visitor_status test_visitor(const struct side_tracer_visitor_ctx *tracer_ctx, void *_ctx) | |
f611d0c3 MD |
166 | { |
167 | struct app_visitor_ctx *ctx = (struct app_visitor_ctx *) _ctx; | |
352a4b77 MD |
168 | uint32_t length = ctx->length, i; |
169 | ||
170 | for (i = 0; i < length; i++) { | |
ffb5c809 MD |
171 | const struct side_arg_vec elem = side_arg_u32(ctx->ptr[i]); |
172 | ||
db6ecef9 MD |
173 | if (tracer_ctx->write_elem(tracer_ctx, &elem) != SIDE_VISITOR_STATUS_OK) |
174 | return SIDE_VISITOR_STATUS_ERROR; | |
352a4b77 | 175 | } |
f611d0c3 MD |
176 | return SIDE_VISITOR_STATUS_OK; |
177 | } | |
178 | ||
179 | static uint32_t testarray[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; | |
180 | ||
89747802 | 181 | side_static_event(my_provider_event_vla_visitor, "myprovider", "myvlavisit", SIDE_LOGLEVEL_DEBUG, |
f611d0c3 | 182 | side_field_list( |
9a55f555 | 183 | side_field_vla_visitor("vlavisit", side_elem(side_type_u32(side_attr_list())), test_visitor, side_attr_list()), |
485b800a | 184 | side_field_s64("v", side_attr_list()), |
399c836b MD |
185 | ), |
186 | side_attr_list() | |
f611d0c3 MD |
187 | ); |
188 | ||
189 | static | |
190 | void test_vla_visitor(void) | |
191 | { | |
d5cdb129 | 192 | side_event_cond(my_provider_event_vla_visitor) { |
f611d0c3 MD |
193 | struct app_visitor_ctx ctx = { |
194 | .ptr = testarray, | |
352a4b77 | 195 | .length = SIDE_ARRAY_SIZE(testarray), |
f611d0c3 | 196 | }; |
d5cdb129 | 197 | side_event_call(my_provider_event_vla_visitor, side_arg_list(side_arg_vla_visitor(&ctx), side_arg_s64(42))); |
f611d0c3 MD |
198 | } |
199 | } | |
200 | ||
cdd6e858 MD |
201 | /* 2D array visitor */ |
202 | ||
203 | struct app_visitor_2d_inner_ctx { | |
204 | const uint32_t *ptr; | |
205 | uint32_t length; | |
206 | }; | |
207 | ||
208 | static | |
209 | enum side_visitor_status test_inner_visitor(const struct side_tracer_visitor_ctx *tracer_ctx, void *_ctx) | |
210 | { | |
211 | struct app_visitor_2d_inner_ctx *ctx = (struct app_visitor_2d_inner_ctx *) _ctx; | |
212 | uint32_t length = ctx->length, i; | |
213 | ||
214 | for (i = 0; i < length; i++) { | |
ffb5c809 MD |
215 | const struct side_arg_vec elem = side_arg_u32(ctx->ptr[i]); |
216 | ||
db6ecef9 MD |
217 | if (tracer_ctx->write_elem(tracer_ctx, &elem) != SIDE_VISITOR_STATUS_OK) |
218 | return SIDE_VISITOR_STATUS_ERROR; | |
cdd6e858 MD |
219 | } |
220 | return SIDE_VISITOR_STATUS_OK; | |
221 | } | |
222 | ||
223 | struct app_visitor_2d_outer_ctx { | |
224 | const uint32_t (*ptr)[2]; | |
225 | uint32_t length; | |
226 | }; | |
227 | ||
228 | static | |
229 | enum side_visitor_status test_outer_visitor(const struct side_tracer_visitor_ctx *tracer_ctx, void *_ctx) | |
230 | { | |
231 | struct app_visitor_2d_outer_ctx *ctx = (struct app_visitor_2d_outer_ctx *) _ctx; | |
232 | uint32_t length = ctx->length, i; | |
233 | ||
234 | for (i = 0; i < length; i++) { | |
235 | struct app_visitor_2d_inner_ctx inner_ctx = { | |
236 | .ptr = ctx->ptr[i], | |
237 | .length = 2, | |
238 | }; | |
239 | const struct side_arg_vec elem = side_arg_vla_visitor(&inner_ctx); | |
db6ecef9 MD |
240 | if (tracer_ctx->write_elem(tracer_ctx, &elem) != SIDE_VISITOR_STATUS_OK) |
241 | return SIDE_VISITOR_STATUS_ERROR; | |
cdd6e858 MD |
242 | } |
243 | return SIDE_VISITOR_STATUS_OK; | |
244 | } | |
245 | ||
246 | static uint32_t testarray2d[][2] = { | |
247 | { 1, 2 }, | |
248 | { 33, 44 }, | |
249 | { 55, 66 }, | |
250 | }; | |
251 | ||
89747802 | 252 | side_static_event(my_provider_event_vla_visitor2d, "myprovider", "myvlavisit2d", SIDE_LOGLEVEL_DEBUG, |
cdd6e858 MD |
253 | side_field_list( |
254 | side_field_vla_visitor("vlavisit2d", | |
f37a556f | 255 | side_elem( |
32ba58fc | 256 | side_type_vla_visitor( |
9a55f555 | 257 | side_elem(side_type_u32(side_attr_list())), |
f37a556f MD |
258 | test_inner_visitor, |
259 | side_attr_list()) | |
260 | ), test_outer_visitor, side_attr_list()), | |
485b800a | 261 | side_field_s64("v", side_attr_list()), |
399c836b MD |
262 | ), |
263 | side_attr_list() | |
cdd6e858 MD |
264 | ); |
265 | ||
266 | static | |
267 | void test_vla_visitor_2d(void) | |
268 | { | |
d5cdb129 | 269 | side_event_cond(my_provider_event_vla_visitor2d) { |
cdd6e858 MD |
270 | struct app_visitor_2d_outer_ctx ctx = { |
271 | .ptr = testarray2d, | |
272 | .length = SIDE_ARRAY_SIZE(testarray2d), | |
273 | }; | |
d5cdb129 | 274 | side_event_call(my_provider_event_vla_visitor2d, side_arg_list(side_arg_vla_visitor(&ctx), side_arg_s64(42))); |
cdd6e858 MD |
275 | } |
276 | } | |
277 | ||
ba845af5 MD |
278 | static int64_t array_fixint[] = { -444, 555, 123, 2897432587 }; |
279 | ||
89747802 | 280 | side_static_event(my_provider_event_array_fixint, "myprovider", "myarrayfixint", SIDE_LOGLEVEL_DEBUG, |
ba845af5 | 281 | side_field_list( |
9a55f555 | 282 | side_field_array("arrfixint", side_elem(side_type_s64(side_attr_list())), SIDE_ARRAY_SIZE(array_fixint), side_attr_list()), |
485b800a | 283 | side_field_s64("v", side_attr_list()), |
399c836b MD |
284 | ), |
285 | side_attr_list() | |
ba845af5 MD |
286 | ); |
287 | ||
288 | static | |
289 | void test_array_fixint(void) | |
290 | { | |
d5cdb129 | 291 | side_event(my_provider_event_array_fixint, |
1533629f MD |
292 | side_arg_list(side_arg_array_s64(array_fixint), side_arg_s64(42))); |
293 | } | |
294 | ||
295 | static int64_t vla_fixint[] = { -444, 555, 123, 2897432587 }; | |
296 | ||
89747802 | 297 | side_static_event(my_provider_event_vla_fixint, "myprovider", "myvlafixint", SIDE_LOGLEVEL_DEBUG, |
1533629f | 298 | side_field_list( |
9a55f555 | 299 | side_field_vla("vlafixint", side_elem(side_type_s64(side_attr_list())), side_attr_list()), |
485b800a | 300 | side_field_s64("v", side_attr_list()), |
399c836b MD |
301 | ), |
302 | side_attr_list() | |
1533629f MD |
303 | ); |
304 | ||
305 | static | |
306 | void test_vla_fixint(void) | |
307 | { | |
d5cdb129 | 308 | side_event(my_provider_event_vla_fixint, |
1533629f | 309 | side_arg_list(side_arg_vla_s64(vla_fixint, SIDE_ARRAY_SIZE(vla_fixint)), side_arg_s64(42))); |
ba845af5 MD |
310 | } |
311 | ||
89747802 | 312 | side_static_event(my_provider_event_dynamic_basic, |
a2e2357e MD |
313 | "myprovider", "mydynamicbasic", SIDE_LOGLEVEL_DEBUG, |
314 | side_field_list( | |
485b800a | 315 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
316 | ), |
317 | side_attr_list() | |
a2e2357e MD |
318 | ); |
319 | ||
320 | static | |
321 | void test_dynamic_basic_type(void) | |
322 | { | |
d5cdb129 | 323 | side_event(my_provider_event_dynamic_basic, |
808bd9bf | 324 | side_arg_list(side_arg_dynamic(side_arg_dynamic_s16(-33, side_attr_list())))); |
a2e2357e MD |
325 | } |
326 | ||
89747802 | 327 | side_static_event(my_provider_event_dynamic_vla, |
a2e2357e MD |
328 | "myprovider", "mydynamicvla", SIDE_LOGLEVEL_DEBUG, |
329 | side_field_list( | |
485b800a | 330 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
331 | ), |
332 | side_attr_list() | |
a2e2357e MD |
333 | ); |
334 | ||
335 | static | |
336 | void test_dynamic_vla(void) | |
337 | { | |
948e3e72 MD |
338 | side_arg_dynamic_define_vec(myvla, |
339 | side_arg_list( | |
808bd9bf MD |
340 | side_arg_dynamic_u32(1, side_attr_list()), |
341 | side_arg_dynamic_u32(2, side_attr_list()), | |
342 | side_arg_dynamic_u32(3, side_attr_list()), | |
8d20e708 MD |
343 | ), |
344 | side_attr_list() | |
df075fa5 | 345 | ); |
d5cdb129 | 346 | side_event(my_provider_event_dynamic_vla, |
8d20e708 | 347 | side_arg_list(side_arg_dynamic(side_arg_dynamic_vla(&myvla)))); |
a2e2357e MD |
348 | } |
349 | ||
89747802 | 350 | side_static_event(my_provider_event_dynamic_null, |
465e5e7e MD |
351 | "myprovider", "mydynamicnull", SIDE_LOGLEVEL_DEBUG, |
352 | side_field_list( | |
485b800a | 353 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
354 | ), |
355 | side_attr_list() | |
465e5e7e MD |
356 | ); |
357 | ||
358 | static | |
359 | void test_dynamic_null(void) | |
360 | { | |
d5cdb129 | 361 | side_event(my_provider_event_dynamic_null, |
808bd9bf | 362 | side_arg_list(side_arg_dynamic(side_arg_dynamic_null(side_attr_list())))); |
465e5e7e MD |
363 | } |
364 | ||
89747802 | 365 | side_static_event(my_provider_event_dynamic_struct, |
c208889e | 366 | "myprovider", "mydynamicstruct", SIDE_LOGLEVEL_DEBUG, |
465e5e7e | 367 | side_field_list( |
485b800a | 368 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
369 | ), |
370 | side_attr_list() | |
465e5e7e MD |
371 | ); |
372 | ||
373 | static | |
c208889e | 374 | void test_dynamic_struct(void) |
465e5e7e | 375 | { |
c208889e | 376 | side_arg_dynamic_define_struct(mystruct, |
465e5e7e | 377 | side_arg_list( |
808bd9bf MD |
378 | side_arg_dynamic_field("a", side_arg_dynamic_u32(43, side_attr_list())), |
379 | side_arg_dynamic_field("b", side_arg_dynamic_string("zzz", side_attr_list())), | |
380 | side_arg_dynamic_field("c", side_arg_dynamic_null(side_attr_list())), | |
8d20e708 MD |
381 | ), |
382 | side_attr_list() | |
465e5e7e MD |
383 | ); |
384 | ||
d5cdb129 | 385 | side_event(my_provider_event_dynamic_struct, |
8d20e708 | 386 | side_arg_list(side_arg_dynamic(side_arg_dynamic_struct(&mystruct)))); |
465e5e7e MD |
387 | } |
388 | ||
89747802 | 389 | side_static_event(my_provider_event_dynamic_nested_struct, |
c208889e | 390 | "myprovider", "mydynamicnestedstruct", SIDE_LOGLEVEL_DEBUG, |
3222d397 | 391 | side_field_list( |
485b800a | 392 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
393 | ), |
394 | side_attr_list() | |
3222d397 MD |
395 | ); |
396 | ||
397 | static | |
c208889e | 398 | void test_dynamic_nested_struct(void) |
3222d397 | 399 | { |
c208889e | 400 | side_arg_dynamic_define_struct(nested, |
3222d397 | 401 | side_arg_list( |
808bd9bf MD |
402 | side_arg_dynamic_field("a", side_arg_dynamic_u32(43, side_attr_list())), |
403 | side_arg_dynamic_field("b", side_arg_dynamic_u8(55, side_attr_list())), | |
8d20e708 MD |
404 | ), |
405 | side_attr_list() | |
3222d397 | 406 | ); |
c208889e | 407 | side_arg_dynamic_define_struct(nested2, |
3222d397 | 408 | side_arg_list( |
808bd9bf MD |
409 | side_arg_dynamic_field("aa", side_arg_dynamic_u64(128, side_attr_list())), |
410 | side_arg_dynamic_field("bb", side_arg_dynamic_u16(1, side_attr_list())), | |
8d20e708 MD |
411 | ), |
412 | side_attr_list() | |
3222d397 | 413 | ); |
c208889e | 414 | side_arg_dynamic_define_struct(mystruct, |
3222d397 | 415 | side_arg_list( |
8d20e708 MD |
416 | side_arg_dynamic_field("nested", side_arg_dynamic_struct(&nested)), |
417 | side_arg_dynamic_field("nested2", side_arg_dynamic_struct(&nested2)), | |
418 | ), | |
419 | side_attr_list() | |
3222d397 | 420 | ); |
d5cdb129 | 421 | side_event(my_provider_event_dynamic_nested_struct, |
8d20e708 | 422 | side_arg_list(side_arg_dynamic(side_arg_dynamic_struct(&mystruct)))); |
3222d397 MD |
423 | } |
424 | ||
89747802 | 425 | side_static_event(my_provider_event_dynamic_vla_struct, |
c208889e | 426 | "myprovider", "mydynamicvlastruct", SIDE_LOGLEVEL_DEBUG, |
7ce1b78f | 427 | side_field_list( |
485b800a | 428 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
429 | ), |
430 | side_attr_list() | |
7ce1b78f MD |
431 | ); |
432 | ||
433 | static | |
c208889e | 434 | void test_dynamic_vla_struct(void) |
7ce1b78f | 435 | { |
c208889e | 436 | side_arg_dynamic_define_struct(nested, |
7ce1b78f | 437 | side_arg_list( |
808bd9bf MD |
438 | side_arg_dynamic_field("a", side_arg_dynamic_u32(43, side_attr_list())), |
439 | side_arg_dynamic_field("b", side_arg_dynamic_u8(55, side_attr_list())), | |
8d20e708 MD |
440 | ), |
441 | side_attr_list() | |
7ce1b78f MD |
442 | ); |
443 | side_arg_dynamic_define_vec(myvla, | |
444 | side_arg_list( | |
8d20e708 MD |
445 | side_arg_dynamic_struct(&nested), |
446 | side_arg_dynamic_struct(&nested), | |
447 | side_arg_dynamic_struct(&nested), | |
448 | side_arg_dynamic_struct(&nested), | |
449 | ), | |
450 | side_attr_list() | |
7ce1b78f | 451 | ); |
d5cdb129 | 452 | side_event(my_provider_event_dynamic_vla_struct, |
8d20e708 | 453 | side_arg_list(side_arg_dynamic(side_arg_dynamic_vla(&myvla)))); |
7ce1b78f MD |
454 | } |
455 | ||
89747802 | 456 | side_static_event(my_provider_event_dynamic_struct_vla, |
c208889e | 457 | "myprovider", "mydynamicstructvla", SIDE_LOGLEVEL_DEBUG, |
980bfdc4 | 458 | side_field_list( |
485b800a | 459 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
460 | ), |
461 | side_attr_list() | |
980bfdc4 MD |
462 | ); |
463 | ||
464 | static | |
c208889e | 465 | void test_dynamic_struct_vla(void) |
980bfdc4 MD |
466 | { |
467 | side_arg_dynamic_define_vec(myvla, | |
948e3e72 | 468 | side_arg_list( |
808bd9bf MD |
469 | side_arg_dynamic_u32(1, side_attr_list()), |
470 | side_arg_dynamic_u32(2, side_attr_list()), | |
471 | side_arg_dynamic_u32(3, side_attr_list()), | |
8d20e708 MD |
472 | ), |
473 | side_attr_list() | |
df075fa5 | 474 | ); |
980bfdc4 | 475 | side_arg_dynamic_define_vec(myvla2, |
948e3e72 | 476 | side_arg_list( |
808bd9bf MD |
477 | side_arg_dynamic_u32(4, side_attr_list()), |
478 | side_arg_dynamic_u64(5, side_attr_list()), | |
479 | side_arg_dynamic_u32(6, side_attr_list()), | |
8d20e708 MD |
480 | ), |
481 | side_attr_list() | |
df075fa5 | 482 | ); |
c208889e | 483 | side_arg_dynamic_define_struct(mystruct, |
980bfdc4 | 484 | side_arg_list( |
8d20e708 MD |
485 | side_arg_dynamic_field("a", side_arg_dynamic_vla(&myvla)), |
486 | side_arg_dynamic_field("b", side_arg_dynamic_vla(&myvla2)), | |
487 | ), | |
488 | side_attr_list() | |
980bfdc4 | 489 | ); |
d5cdb129 | 490 | side_event(my_provider_event_dynamic_struct_vla, |
8d20e708 | 491 | side_arg_list(side_arg_dynamic(side_arg_dynamic_struct(&mystruct)))); |
980bfdc4 MD |
492 | } |
493 | ||
89747802 | 494 | side_static_event(my_provider_event_dynamic_nested_vla, |
948e3e72 MD |
495 | "myprovider", "mydynamicnestedvla", SIDE_LOGLEVEL_DEBUG, |
496 | side_field_list( | |
485b800a | 497 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
498 | ), |
499 | side_attr_list() | |
948e3e72 MD |
500 | ); |
501 | ||
502 | static | |
503 | void test_dynamic_nested_vla(void) | |
504 | { | |
505 | side_arg_dynamic_define_vec(nestedvla, | |
506 | side_arg_list( | |
808bd9bf MD |
507 | side_arg_dynamic_u32(1, side_attr_list()), |
508 | side_arg_dynamic_u16(2, side_attr_list()), | |
509 | side_arg_dynamic_u32(3, side_attr_list()), | |
8d20e708 MD |
510 | ), |
511 | side_attr_list() | |
948e3e72 MD |
512 | ); |
513 | side_arg_dynamic_define_vec(nestedvla2, | |
514 | side_arg_list( | |
808bd9bf MD |
515 | side_arg_dynamic_u8(4, side_attr_list()), |
516 | side_arg_dynamic_u32(5, side_attr_list()), | |
517 | side_arg_dynamic_u32(6, side_attr_list()), | |
8d20e708 MD |
518 | ), |
519 | side_attr_list() | |
948e3e72 MD |
520 | ); |
521 | side_arg_dynamic_define_vec(myvla, | |
522 | side_arg_list( | |
8d20e708 MD |
523 | side_arg_dynamic_vla(&nestedvla), |
524 | side_arg_dynamic_vla(&nestedvla2), | |
525 | ), | |
526 | side_attr_list() | |
948e3e72 | 527 | ); |
d5cdb129 | 528 | side_event(my_provider_event_dynamic_nested_vla, |
8d20e708 | 529 | side_arg_list(side_arg_dynamic(side_arg_dynamic_vla(&myvla)))); |
948e3e72 MD |
530 | } |
531 | ||
89747802 | 532 | side_static_event_variadic(my_provider_event_variadic, |
19fa6aa2 | 533 | "myprovider", "myvariadicevent", SIDE_LOGLEVEL_DEBUG, |
399c836b MD |
534 | side_field_list(), |
535 | side_attr_list() | |
19fa6aa2 MD |
536 | ); |
537 | ||
538 | static | |
539 | void test_variadic(void) | |
540 | { | |
d5cdb129 | 541 | side_event_variadic(my_provider_event_variadic, |
19fa6aa2 MD |
542 | side_arg_list(), |
543 | side_arg_list( | |
808bd9bf MD |
544 | side_arg_dynamic_field("a", side_arg_dynamic_u32(55, side_attr_list())), |
545 | side_arg_dynamic_field("b", side_arg_dynamic_s8(-4, side_attr_list())), | |
8d20e708 MD |
546 | ), |
547 | side_attr_list() | |
19fa6aa2 MD |
548 | ); |
549 | } | |
550 | ||
89747802 | 551 | side_static_event_variadic(my_provider_event_static_variadic, |
41c4d119 MD |
552 | "myprovider", "mystaticvariadicevent", SIDE_LOGLEVEL_DEBUG, |
553 | side_field_list( | |
485b800a MD |
554 | side_field_u32("abc", side_attr_list()), |
555 | side_field_u16("def", side_attr_list()), | |
399c836b MD |
556 | ), |
557 | side_attr_list() | |
41c4d119 MD |
558 | ); |
559 | ||
560 | static | |
561 | void test_static_variadic(void) | |
562 | { | |
d5cdb129 | 563 | side_event_variadic(my_provider_event_static_variadic, |
41c4d119 MD |
564 | side_arg_list( |
565 | side_arg_u32(1), | |
566 | side_arg_u16(2), | |
567 | ), | |
568 | side_arg_list( | |
808bd9bf MD |
569 | side_arg_dynamic_field("a", side_arg_dynamic_u32(55, side_attr_list())), |
570 | side_arg_dynamic_field("b", side_arg_dynamic_s8(-4, side_attr_list())), | |
8d20e708 MD |
571 | ), |
572 | side_attr_list() | |
41c4d119 MD |
573 | ); |
574 | } | |
575 | ||
89747802 | 576 | side_static_event(my_provider_event_bool, "myprovider", "myeventbool", SIDE_LOGLEVEL_DEBUG, |
4f40d951 | 577 | side_field_list( |
485b800a MD |
578 | side_field_bool("a_false", side_attr_list()), |
579 | side_field_bool("b_true", side_attr_list()), | |
580 | side_field_bool("c_true", side_attr_list()), | |
581 | side_field_bool("d_true", side_attr_list()), | |
582 | side_field_bool("e_true", side_attr_list()), | |
583 | side_field_bool("f_false", side_attr_list()), | |
584 | side_field_bool("g_true", side_attr_list()), | |
399c836b MD |
585 | ), |
586 | side_attr_list() | |
4f40d951 MD |
587 | ); |
588 | ||
589 | static | |
590 | void test_bool(void) | |
591 | { | |
592 | uint32_t a = 0; | |
593 | uint32_t b = 1; | |
594 | uint64_t c = 0x12345678; | |
595 | int16_t d = -32768; | |
596 | bool e = true; | |
597 | bool f = false; | |
598 | uint32_t g = 256; | |
599 | ||
d5cdb129 | 600 | side_event(my_provider_event_bool, |
4f40d951 MD |
601 | side_arg_list( |
602 | side_arg_bool(a), | |
603 | side_arg_bool(b), | |
604 | side_arg_bool(c), | |
605 | side_arg_bool(d), | |
606 | side_arg_bool(e), | |
607 | side_arg_bool(f), | |
608 | side_arg_bool(g), | |
609 | ) | |
610 | ); | |
611 | } | |
612 | ||
89747802 | 613 | side_static_event_variadic(my_provider_event_dynamic_bool, |
4f40d951 | 614 | "myprovider", "mydynamicbool", SIDE_LOGLEVEL_DEBUG, |
399c836b MD |
615 | side_field_list(), |
616 | side_attr_list() | |
4f40d951 MD |
617 | ); |
618 | ||
619 | static | |
620 | void test_dynamic_bool(void) | |
621 | { | |
d5cdb129 | 622 | side_event_variadic(my_provider_event_dynamic_bool, |
4f40d951 MD |
623 | side_arg_list(), |
624 | side_arg_list( | |
808bd9bf MD |
625 | side_arg_dynamic_field("a_true", side_arg_dynamic_bool(55, side_attr_list())), |
626 | side_arg_dynamic_field("b_true", side_arg_dynamic_bool(-4, side_attr_list())), | |
627 | side_arg_dynamic_field("c_false", side_arg_dynamic_bool(0, side_attr_list())), | |
628 | side_arg_dynamic_field("d_true", side_arg_dynamic_bool(256, side_attr_list())), | |
8d20e708 MD |
629 | ), |
630 | side_attr_list() | |
4f40d951 MD |
631 | ); |
632 | } | |
633 | ||
89747802 | 634 | side_static_event(my_provider_event_dynamic_vla_visitor, |
8ceca0cd MD |
635 | "myprovider", "mydynamicvlavisitor", SIDE_LOGLEVEL_DEBUG, |
636 | side_field_list( | |
485b800a | 637 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
638 | ), |
639 | side_attr_list() | |
8ceca0cd MD |
640 | ); |
641 | ||
642 | struct app_dynamic_vla_visitor_ctx { | |
643 | const uint32_t *ptr; | |
644 | uint32_t length; | |
645 | }; | |
646 | ||
647 | static | |
648 | enum side_visitor_status test_dynamic_vla_visitor(const struct side_tracer_dynamic_vla_visitor_ctx *tracer_ctx, void *_ctx) | |
649 | { | |
650 | struct app_dynamic_vla_visitor_ctx *ctx = (struct app_dynamic_vla_visitor_ctx *) _ctx; | |
651 | uint32_t length = ctx->length, i; | |
652 | ||
653 | for (i = 0; i < length; i++) { | |
654 | const struct side_arg_dynamic_vec elem = { | |
655 | .dynamic_type = SIDE_DYNAMIC_TYPE_U32, | |
656 | .u = { | |
8d20e708 MD |
657 | .side_basic = { |
658 | .attr = NULL, | |
659 | .nr_attr = 0, | |
660 | .u = { | |
661 | .side_u32 = ctx->ptr[i], | |
662 | }, | |
663 | }, | |
8ceca0cd MD |
664 | }, |
665 | }; | |
666 | if (tracer_ctx->write_elem(tracer_ctx, &elem) != SIDE_VISITOR_STATUS_OK) | |
667 | return SIDE_VISITOR_STATUS_ERROR; | |
668 | } | |
669 | return SIDE_VISITOR_STATUS_OK; | |
670 | } | |
671 | ||
672 | static uint32_t testarray_dynamic_vla[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; | |
673 | ||
674 | static | |
675 | void test_dynamic_vla_with_visitor(void) | |
676 | { | |
d5cdb129 | 677 | side_event_cond(my_provider_event_dynamic_vla_visitor) { |
8ceca0cd MD |
678 | struct app_dynamic_vla_visitor_ctx ctx = { |
679 | .ptr = testarray_dynamic_vla, | |
680 | .length = SIDE_ARRAY_SIZE(testarray_dynamic_vla), | |
681 | }; | |
d5cdb129 | 682 | side_event_call(my_provider_event_dynamic_vla_visitor, |
8ceca0cd MD |
683 | side_arg_list( |
684 | side_arg_dynamic( | |
808bd9bf | 685 | side_arg_dynamic_vla_visitor(test_dynamic_vla_visitor, &ctx, side_attr_list()) |
8ceca0cd MD |
686 | ) |
687 | ) | |
688 | ); | |
689 | } | |
690 | } | |
691 | ||
89747802 | 692 | side_static_event(my_provider_event_dynamic_struct_visitor, |
2b359235 MD |
693 | "myprovider", "mydynamicstructvisitor", SIDE_LOGLEVEL_DEBUG, |
694 | side_field_list( | |
485b800a | 695 | side_field_dynamic("dynamic", side_attr_list()), |
399c836b MD |
696 | ), |
697 | side_attr_list() | |
2b359235 MD |
698 | ); |
699 | ||
700 | struct struct_visitor_pair { | |
701 | const char *name; | |
702 | uint32_t value; | |
703 | }; | |
704 | ||
705 | struct app_dynamic_struct_visitor_ctx { | |
706 | const struct struct_visitor_pair *ptr; | |
707 | uint32_t length; | |
708 | }; | |
709 | ||
710 | static | |
711 | enum side_visitor_status test_dynamic_struct_visitor(const struct side_tracer_dynamic_struct_visitor_ctx *tracer_ctx, void *_ctx) | |
712 | { | |
713 | struct app_dynamic_struct_visitor_ctx *ctx = (struct app_dynamic_struct_visitor_ctx *) _ctx; | |
714 | uint32_t length = ctx->length, i; | |
715 | ||
716 | for (i = 0; i < length; i++) { | |
717 | struct side_arg_dynamic_event_field dynamic_field = { | |
718 | .field_name = ctx->ptr[i].name, | |
719 | .elem = { | |
720 | .dynamic_type = SIDE_DYNAMIC_TYPE_U32, | |
721 | .u = { | |
8d20e708 MD |
722 | .side_basic = { |
723 | .nr_attr = 0, | |
724 | .attr = NULL, | |
725 | .u = { | |
726 | .side_u32 = ctx->ptr[i].value, | |
727 | }, | |
728 | }, | |
2b359235 MD |
729 | }, |
730 | }, | |
731 | }; | |
732 | if (tracer_ctx->write_field(tracer_ctx, &dynamic_field) != SIDE_VISITOR_STATUS_OK) | |
733 | return SIDE_VISITOR_STATUS_ERROR; | |
734 | } | |
735 | return SIDE_VISITOR_STATUS_OK; | |
736 | } | |
737 | ||
738 | static struct struct_visitor_pair testarray_dynamic_struct[] = { | |
739 | { "a", 1, }, | |
740 | { "b", 2, }, | |
741 | { "c", 3, }, | |
742 | { "d", 4, }, | |
743 | }; | |
744 | ||
745 | static | |
746 | void test_dynamic_struct_with_visitor(void) | |
747 | { | |
d5cdb129 | 748 | side_event_cond(my_provider_event_dynamic_struct_visitor) { |
2b359235 MD |
749 | struct app_dynamic_struct_visitor_ctx ctx = { |
750 | .ptr = testarray_dynamic_struct, | |
751 | .length = SIDE_ARRAY_SIZE(testarray_dynamic_struct), | |
752 | }; | |
d5cdb129 | 753 | side_event_call(my_provider_event_dynamic_struct_visitor, |
2b359235 MD |
754 | side_arg_list( |
755 | side_arg_dynamic( | |
808bd9bf | 756 | side_arg_dynamic_struct_visitor(test_dynamic_struct_visitor, &ctx, side_attr_list()) |
2b359235 MD |
757 | ) |
758 | ) | |
759 | ); | |
760 | } | |
761 | } | |
762 | ||
89747802 | 763 | side_static_event(my_provider_event_user_attribute, "myprovider", "myevent_user_attribute", SIDE_LOGLEVEL_DEBUG, |
65010f43 | 764 | side_field_list( |
485b800a MD |
765 | side_field_u32("abc", side_attr_list()), |
766 | side_field_s64("def", side_attr_list()), | |
399c836b MD |
767 | ), |
768 | side_attr_list( | |
bc3c89b3 MD |
769 | side_attr("user_attribute_a", side_attr_string("val1")), |
770 | side_attr("user_attribute_b", side_attr_string("val2")), | |
65010f43 MD |
771 | ) |
772 | ); | |
773 | ||
774 | static | |
775 | void test_event_user_attribute(void) | |
776 | { | |
d5cdb129 | 777 | side_event(my_provider_event_user_attribute, side_arg_list(side_arg_u32(1), side_arg_s64(2))); |
65010f43 MD |
778 | } |
779 | ||
89747802 | 780 | side_static_event(my_provider_field_user_attribute, "myprovider", "myevent_field_attribute", SIDE_LOGLEVEL_DEBUG, |
a848763d | 781 | side_field_list( |
485b800a | 782 | side_field_u32("abc", |
a848763d | 783 | side_attr_list( |
bc3c89b3 MD |
784 | side_attr("user_attribute_a", side_attr_string("val1")), |
785 | side_attr("user_attribute_b", side_attr_u32(2)), | |
a848763d MD |
786 | ) |
787 | ), | |
485b800a | 788 | side_field_s64("def", |
a848763d | 789 | side_attr_list( |
bc3c89b3 MD |
790 | side_attr("user_attribute_c", side_attr_string("val3")), |
791 | side_attr("user_attribute_d", side_attr_s64(-5)), | |
a848763d MD |
792 | ) |
793 | ), | |
794 | ), | |
795 | side_attr_list() | |
796 | ); | |
797 | ||
798 | static | |
799 | void test_field_user_attribute(void) | |
800 | { | |
d5cdb129 | 801 | side_event(my_provider_field_user_attribute, side_arg_list(side_arg_u32(1), side_arg_s64(2))); |
a848763d MD |
802 | } |
803 | ||
89747802 | 804 | side_static_event_variadic(my_provider_event_variadic_attr, |
808bd9bf MD |
805 | "myprovider", "myvariadiceventattr", SIDE_LOGLEVEL_DEBUG, |
806 | side_field_list(), | |
807 | side_attr_list() | |
808 | ); | |
809 | ||
810 | static | |
811 | void test_variadic_attr(void) | |
812 | { | |
d5cdb129 | 813 | side_event_variadic(my_provider_event_variadic_attr, |
808bd9bf MD |
814 | side_arg_list(), |
815 | side_arg_list( | |
816 | side_arg_dynamic_field("a", | |
817 | side_arg_dynamic_u32(55, | |
818 | side_attr_list( | |
bc3c89b3 MD |
819 | side_attr("user_attribute_c", side_attr_string("valX")), |
820 | side_attr("user_attribute_d", side_attr_u8(55)), | |
808bd9bf MD |
821 | ) |
822 | ) | |
823 | ), | |
824 | side_arg_dynamic_field("b", | |
825 | side_arg_dynamic_s8(-4, | |
826 | side_attr_list( | |
bc3c89b3 MD |
827 | side_attr("X", side_attr_u8(1)), |
828 | side_attr("Y", side_attr_s8(2)), | |
808bd9bf MD |
829 | ) |
830 | ) | |
831 | ), | |
8d20e708 MD |
832 | ), |
833 | side_attr_list() | |
808bd9bf MD |
834 | ); |
835 | } | |
836 | ||
89747802 | 837 | side_static_event_variadic(my_provider_event_variadic_vla_attr, |
808bd9bf MD |
838 | "myprovider", "myvariadiceventvlaattr", SIDE_LOGLEVEL_DEBUG, |
839 | side_field_list(), | |
840 | side_attr_list() | |
841 | ); | |
842 | ||
843 | static | |
844 | void test_variadic_vla_attr(void) | |
845 | { | |
846 | side_arg_dynamic_define_vec(myvla, | |
847 | side_arg_list( | |
848 | side_arg_dynamic_u32(1, | |
849 | side_attr_list( | |
bc3c89b3 MD |
850 | side_attr("Z", side_attr_u8(0)), |
851 | side_attr("A", side_attr_u8(123)), | |
808bd9bf MD |
852 | ) |
853 | ), | |
854 | side_arg_dynamic_u32(2, side_attr_list()), | |
855 | side_arg_dynamic_u32(3, side_attr_list()), | |
8d20e708 MD |
856 | ), |
857 | side_attr_list( | |
858 | side_attr("X", side_attr_u8(1)), | |
859 | side_attr("Y", side_attr_u8(2)), | |
808bd9bf MD |
860 | ) |
861 | ); | |
d5cdb129 | 862 | side_event_variadic(my_provider_event_variadic_vla_attr, |
808bd9bf MD |
863 | side_arg_list(), |
864 | side_arg_list( | |
8d20e708 MD |
865 | side_arg_dynamic_field("a", side_arg_dynamic_vla(&myvla)), |
866 | ), | |
867 | side_attr_list() | |
808bd9bf MD |
868 | ); |
869 | } | |
870 | ||
89747802 | 871 | side_static_event_variadic(my_provider_event_variadic_struct_attr, |
808bd9bf MD |
872 | "myprovider", "myvariadiceventstructattr", SIDE_LOGLEVEL_DEBUG, |
873 | side_field_list(), | |
874 | side_attr_list() | |
875 | ); | |
876 | ||
877 | static | |
878 | void test_variadic_struct_attr(void) | |
879 | { | |
d5cdb129 | 880 | side_event_cond(my_provider_event_variadic_struct_attr) { |
808bd9bf MD |
881 | side_arg_dynamic_define_struct(mystruct, |
882 | side_arg_list( | |
883 | side_arg_dynamic_field("a", | |
884 | side_arg_dynamic_u32(43, | |
885 | side_attr_list( | |
bc3c89b3 | 886 | side_attr("A", side_attr_bool(true)), |
808bd9bf MD |
887 | ) |
888 | ) | |
889 | ), | |
890 | side_arg_dynamic_field("b", side_arg_dynamic_u8(55, side_attr_list())), | |
8d20e708 MD |
891 | ), |
892 | side_attr_list( | |
893 | side_attr("X", side_attr_u8(1)), | |
894 | side_attr("Y", side_attr_u8(2)), | |
808bd9bf MD |
895 | ) |
896 | ); | |
d5cdb129 | 897 | side_event_call_variadic(my_provider_event_variadic_struct_attr, |
808bd9bf MD |
898 | side_arg_list(), |
899 | side_arg_list( | |
8d20e708 MD |
900 | side_arg_dynamic_field("a", side_arg_dynamic_struct(&mystruct)), |
901 | ), | |
902 | side_attr_list() | |
808bd9bf MD |
903 | ); |
904 | } | |
905 | } | |
906 | ||
89747802 | 907 | side_static_event(my_provider_event_float, "myprovider", "myeventfloat", SIDE_LOGLEVEL_DEBUG, |
fb25b355 MD |
908 | side_field_list( |
909 | #if __HAVE_FLOAT16 | |
485b800a | 910 | side_field_float_binary16("binary16", side_attr_list()), |
8bdd5c12 MD |
911 | side_field_float_binary16_le("binary16_le", side_attr_list()), |
912 | side_field_float_binary16_be("binary16_be", side_attr_list()), | |
fb25b355 MD |
913 | #endif |
914 | #if __HAVE_FLOAT32 | |
485b800a | 915 | side_field_float_binary32("binary32", side_attr_list()), |
8bdd5c12 MD |
916 | side_field_float_binary32_le("binary32_le", side_attr_list()), |
917 | side_field_float_binary32_be("binary32_be", side_attr_list()), | |
fb25b355 MD |
918 | #endif |
919 | #if __HAVE_FLOAT64 | |
485b800a | 920 | side_field_float_binary64("binary64", side_attr_list()), |
8bdd5c12 MD |
921 | side_field_float_binary64_le("binary64_le", side_attr_list()), |
922 | side_field_float_binary64_be("binary64_be", side_attr_list()), | |
fb25b355 MD |
923 | #endif |
924 | #if __HAVE_FLOAT128 | |
485b800a | 925 | side_field_float_binary128("binary128", side_attr_list()), |
8bdd5c12 MD |
926 | side_field_float_binary128_le("binary128_le", side_attr_list()), |
927 | side_field_float_binary128_be("binary128_be", side_attr_list()), | |
fb25b355 MD |
928 | #endif |
929 | ), | |
930 | side_attr_list() | |
931 | ); | |
932 | ||
933 | static | |
934 | void test_float(void) | |
935 | { | |
8bdd5c12 MD |
936 | #if __HAVE_FLOAT16 |
937 | union { | |
938 | _Float16 f; | |
939 | uint16_t u; | |
940 | } float16 = { | |
941 | .f = 1.1, | |
942 | }; | |
943 | #endif | |
944 | #if __HAVE_FLOAT32 | |
945 | union { | |
946 | _Float32 f; | |
947 | uint32_t u; | |
948 | } float32 = { | |
949 | .f = 2.2, | |
950 | }; | |
951 | #endif | |
952 | #if __HAVE_FLOAT64 | |
953 | union { | |
954 | _Float64 f; | |
955 | uint64_t u; | |
956 | } float64 = { | |
957 | .f = 3.3, | |
958 | }; | |
959 | #endif | |
960 | #if __HAVE_FLOAT128 | |
961 | union { | |
962 | _Float128 f; | |
963 | char arr[16]; | |
964 | } float128 = { | |
965 | .f = 4.4, | |
966 | }; | |
967 | #endif | |
968 | ||
969 | #if __HAVE_FLOAT16 | |
970 | float16.u = side_bswap_16(float16.u); | |
971 | #endif | |
972 | #if __HAVE_FLOAT32 | |
973 | float32.u = side_bswap_32(float32.u); | |
974 | #endif | |
975 | #if __HAVE_FLOAT64 | |
976 | float64.u = side_bswap_64(float64.u); | |
977 | #endif | |
978 | #if __HAVE_FLOAT128 | |
979 | side_bswap_128p(float128.arr); | |
980 | #endif | |
981 | ||
d5cdb129 | 982 | side_event(my_provider_event_float, |
fb25b355 MD |
983 | side_arg_list( |
984 | #if __HAVE_FLOAT16 | |
985 | side_arg_float_binary16(1.1), | |
8bdd5c12 MD |
986 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN |
987 | side_arg_float_binary16(1.1), | |
988 | side_arg_float_binary16(float16.f), | |
989 | # else | |
990 | side_arg_float_binary16(float16.f), | |
991 | side_arg_float_binary16(1.1), | |
992 | # endif | |
fb25b355 MD |
993 | #endif |
994 | #if __HAVE_FLOAT32 | |
995 | side_arg_float_binary32(2.2), | |
8bdd5c12 MD |
996 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN |
997 | side_arg_float_binary32(2.2), | |
998 | side_arg_float_binary32(float32.f), | |
999 | # else | |
1000 | side_arg_float_binary32(float32.f), | |
1001 | side_arg_float_binary32(2.2), | |
1002 | # endif | |
fb25b355 MD |
1003 | #endif |
1004 | #if __HAVE_FLOAT64 | |
1005 | side_arg_float_binary64(3.3), | |
8bdd5c12 MD |
1006 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN |
1007 | side_arg_float_binary64(3.3), | |
1008 | side_arg_float_binary64(float64.f), | |
1009 | # else | |
1010 | side_arg_float_binary64(float64.f), | |
1011 | side_arg_float_binary64(3.3), | |
1012 | # endif | |
fb25b355 MD |
1013 | #endif |
1014 | #if __HAVE_FLOAT128 | |
1015 | side_arg_float_binary128(4.4), | |
8bdd5c12 MD |
1016 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN |
1017 | side_arg_float_binary128(4.4), | |
1018 | side_arg_float_binary128(float128.f), | |
1019 | # else | |
1020 | side_arg_float_binary128(float128.f), | |
1021 | side_arg_float_binary128(4.4), | |
1022 | # endif | |
fb25b355 MD |
1023 | #endif |
1024 | ) | |
1025 | ); | |
1026 | } | |
1027 | ||
89747802 | 1028 | side_static_event_variadic(my_provider_event_variadic_float, |
fb25b355 MD |
1029 | "myprovider", "myvariadicfloat", SIDE_LOGLEVEL_DEBUG, |
1030 | side_field_list(), | |
1031 | side_attr_list() | |
1032 | ); | |
1033 | ||
1034 | static | |
1035 | void test_variadic_float(void) | |
1036 | { | |
8bdd5c12 MD |
1037 | #if __HAVE_FLOAT16 |
1038 | union { | |
1039 | _Float16 f; | |
1040 | uint16_t u; | |
1041 | } float16 = { | |
1042 | .f = 1.1, | |
1043 | }; | |
1044 | #endif | |
1045 | #if __HAVE_FLOAT32 | |
1046 | union { | |
1047 | _Float32 f; | |
1048 | uint32_t u; | |
1049 | } float32 = { | |
1050 | .f = 2.2, | |
1051 | }; | |
1052 | #endif | |
1053 | #if __HAVE_FLOAT64 | |
1054 | union { | |
1055 | _Float64 f; | |
1056 | uint64_t u; | |
1057 | } float64 = { | |
1058 | .f = 3.3, | |
1059 | }; | |
1060 | #endif | |
1061 | #if __HAVE_FLOAT128 | |
1062 | union { | |
1063 | _Float128 f; | |
1064 | char arr[16]; | |
1065 | } float128 = { | |
1066 | .f = 4.4, | |
1067 | }; | |
1068 | #endif | |
1069 | ||
1070 | #if __HAVE_FLOAT16 | |
1071 | float16.u = side_bswap_16(float16.u); | |
1072 | #endif | |
1073 | #if __HAVE_FLOAT32 | |
1074 | float32.u = side_bswap_32(float32.u); | |
1075 | #endif | |
1076 | #if __HAVE_FLOAT64 | |
1077 | float64.u = side_bswap_64(float64.u); | |
1078 | #endif | |
1079 | #if __HAVE_FLOAT128 | |
1080 | side_bswap_128p(float128.arr); | |
1081 | #endif | |
1082 | ||
d5cdb129 | 1083 | side_event_variadic(my_provider_event_variadic_float, |
fb25b355 MD |
1084 | side_arg_list(), |
1085 | side_arg_list( | |
1086 | #if __HAVE_FLOAT16 | |
8bdd5c12 MD |
1087 | side_arg_dynamic_field("binary16", side_arg_dynamic_float_binary16(1.1, side_attr_list())), |
1088 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN | |
1089 | side_arg_dynamic_field("binary16_le", side_arg_dynamic_float_binary16_le(1.1, side_attr_list())), | |
1090 | side_arg_dynamic_field("binary16_be", side_arg_dynamic_float_binary16_be(float16.f, side_attr_list())), | |
1091 | # else | |
1092 | side_arg_dynamic_field("binary16_le", side_arg_dynamic_float_binary16_le(float16.f, side_attr_list())), | |
1093 | side_arg_dynamic_field("binary16_be", side_arg_dynamic_float_binary16_be(1.1, side_attr_list())), | |
1094 | # endif | |
fb25b355 MD |
1095 | #endif |
1096 | #if __HAVE_FLOAT32 | |
8bdd5c12 MD |
1097 | side_arg_dynamic_field("binary32", side_arg_dynamic_float_binary32(2.2, side_attr_list())), |
1098 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN | |
1099 | side_arg_dynamic_field("binary32_le", side_arg_dynamic_float_binary32_le(2.2, side_attr_list())), | |
1100 | side_arg_dynamic_field("binary32_be", side_arg_dynamic_float_binary32_be(float32.f, side_attr_list())), | |
1101 | # else | |
1102 | side_arg_dynamic_field("binary32_le", side_arg_dynamic_float_binary32_le(float32.f, side_attr_list())), | |
1103 | side_arg_dynamic_field("binary32_be", side_arg_dynamic_float_binary32_be(2.2, side_attr_list())), | |
1104 | # endif | |
fb25b355 MD |
1105 | #endif |
1106 | #if __HAVE_FLOAT64 | |
8bdd5c12 MD |
1107 | side_arg_dynamic_field("binary64", side_arg_dynamic_float_binary64(3.3, side_attr_list())), |
1108 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN | |
1109 | side_arg_dynamic_field("binary64_le", side_arg_dynamic_float_binary64_le(3.3, side_attr_list())), | |
1110 | side_arg_dynamic_field("binary64_be", side_arg_dynamic_float_binary64_be(float64.f, side_attr_list())), | |
1111 | # else | |
1112 | side_arg_dynamic_field("binary64_le", side_arg_dynamic_float_binary64_le(float64.f, side_attr_list())), | |
1113 | side_arg_dynamic_field("binary64_be", side_arg_dynamic_float_binary64_be(3.3, side_attr_list())), | |
1114 | # endif | |
fb25b355 MD |
1115 | #endif |
1116 | #if __HAVE_FLOAT128 | |
8bdd5c12 MD |
1117 | side_arg_dynamic_field("binary128", side_arg_dynamic_float_binary128(4.4, side_attr_list())), |
1118 | # if SIDE_FLOAT_WORD_ORDER == SIDE_LITTLE_ENDIAN | |
1119 | side_arg_dynamic_field("binary128_le", side_arg_dynamic_float_binary128_le(4.4, side_attr_list())), | |
1120 | side_arg_dynamic_field("binary128_be", side_arg_dynamic_float_binary128_be(float128.f, side_attr_list())), | |
1121 | # else | |
1122 | side_arg_dynamic_field("binary128_le", side_arg_dynamic_float_binary128_le(float128.f, side_attr_list())), | |
1123 | side_arg_dynamic_field("binary128_be", side_arg_dynamic_float_binary128_be(4.4, side_attr_list())), | |
1124 | # endif | |
fb25b355 | 1125 | #endif |
8d20e708 MD |
1126 | ), |
1127 | side_attr_list() | |
fb25b355 MD |
1128 | ); |
1129 | } | |
1130 | ||
79f677ba | 1131 | static side_define_enum(myenum, |
66cff328 | 1132 | side_enum_mapping_list( |
79f677ba MD |
1133 | side_enum_mapping_range("one-ten", 1, 10), |
1134 | side_enum_mapping_range("100-200", 100, 200), | |
1135 | side_enum_mapping_value("200", 200), | |
1136 | side_enum_mapping_value("300", 300), | |
d4328528 MD |
1137 | ), |
1138 | side_attr_list() | |
79f677ba MD |
1139 | ); |
1140 | ||
89747802 | 1141 | side_static_event(my_provider_event_enum, "myprovider", "myeventenum", SIDE_LOGLEVEL_DEBUG, |
79f677ba | 1142 | side_field_list( |
f89c4ad1 MD |
1143 | side_field_enum("5", &myenum, side_elem(side_type_u32(side_attr_list()))), |
1144 | side_field_enum("400", &myenum, side_elem(side_type_u64(side_attr_list()))), | |
1145 | side_field_enum("200", &myenum, side_elem(side_type_u8(side_attr_list()))), | |
1146 | side_field_enum("-100", &myenum, side_elem(side_type_s8(side_attr_list()))), | |
8bdd5c12 MD |
1147 | side_field_enum("6_be", &myenum, side_elem(side_type_u32_be(side_attr_list()))), |
1148 | side_field_enum("6_le", &myenum, side_elem(side_type_u32_le(side_attr_list()))), | |
79f677ba MD |
1149 | ), |
1150 | side_attr_list() | |
1151 | ); | |
1152 | ||
1153 | static | |
1154 | void test_enum(void) | |
1155 | { | |
d5cdb129 | 1156 | side_event(my_provider_event_enum, |
79f677ba | 1157 | side_arg_list( |
d8be25de MD |
1158 | side_arg_u32(5), |
1159 | side_arg_u64(400), | |
1160 | side_arg_u8(200), | |
1161 | side_arg_s8(-100), | |
8bdd5c12 MD |
1162 | #if SIDE_BYTE_ORDER == SIDE_LITTLE_ENDIAN |
1163 | side_arg_u32(side_bswap_32(6)), | |
1164 | side_arg_u32(6), | |
1165 | #else | |
1166 | side_arg_u32(side_bswap_32(6)), | |
1167 | side_arg_u32(6), | |
1168 | #endif | |
79f677ba MD |
1169 | ) |
1170 | ); | |
1171 | } | |
1172 | ||
ea32e5fc | 1173 | /* A bitmap enum maps bits to labels. */ |
66cff328 MD |
1174 | static side_define_enum_bitmap(myenum_bitmap, |
1175 | side_enum_bitmap_mapping_list( | |
1176 | side_enum_bitmap_mapping_value("0", 0), | |
1177 | side_enum_bitmap_mapping_range("1-2", 1, 2), | |
1178 | side_enum_bitmap_mapping_range("2-4", 2, 4), | |
1179 | side_enum_bitmap_mapping_value("3", 3), | |
1180 | side_enum_bitmap_mapping_value("30", 30), | |
1181 | side_enum_bitmap_mapping_value("63", 63), | |
af6aa6e1 MD |
1182 | side_enum_bitmap_mapping_range("158-160", 158, 160), |
1183 | side_enum_bitmap_mapping_value("159", 159), | |
1184 | side_enum_bitmap_mapping_range("500-700", 500, 700), | |
d4328528 MD |
1185 | ), |
1186 | side_attr_list() | |
ea32e5fc MD |
1187 | ); |
1188 | ||
89747802 | 1189 | side_static_event(my_provider_event_enum_bitmap, "myprovider", "myeventenumbitmap", SIDE_LOGLEVEL_DEBUG, |
ea32e5fc | 1190 | side_field_list( |
f89c4ad1 MD |
1191 | side_field_enum_bitmap("bit_0", &myenum_bitmap, side_elem(side_type_u32(side_attr_list()))), |
1192 | side_field_enum_bitmap("bit_1", &myenum_bitmap, side_elem(side_type_u32(side_attr_list()))), | |
1193 | side_field_enum_bitmap("bit_2", &myenum_bitmap, side_elem(side_type_u8(side_attr_list()))), | |
1194 | side_field_enum_bitmap("bit_3", &myenum_bitmap, side_elem(side_type_u8(side_attr_list()))), | |
1195 | side_field_enum_bitmap("bit_30", &myenum_bitmap, side_elem(side_type_u32(side_attr_list()))), | |
1196 | side_field_enum_bitmap("bit_31", &myenum_bitmap, side_elem(side_type_u32(side_attr_list()))), | |
1197 | side_field_enum_bitmap("bit_63", &myenum_bitmap, side_elem(side_type_u64(side_attr_list()))), | |
1198 | side_field_enum_bitmap("bits_1+63", &myenum_bitmap, side_elem(side_type_u64(side_attr_list()))), | |
4cc2880b | 1199 | side_field_enum_bitmap("byte_bit_2", &myenum_bitmap, side_elem(side_type_byte(side_attr_list()))), |
f89c4ad1 MD |
1200 | side_field_enum_bitmap("bit_159", &myenum_bitmap, |
1201 | side_elem(side_type_array(side_elem(side_type_u32(side_attr_list())), 5, side_attr_list()))), | |
1202 | side_field_enum_bitmap("bit_159", &myenum_bitmap, | |
1203 | side_elem(side_type_vla(side_elem(side_type_u32(side_attr_list())), side_attr_list()))), | |
8bdd5c12 MD |
1204 | side_field_enum_bitmap("bit_2_be", &myenum_bitmap, side_elem(side_type_u32_be(side_attr_list()))), |
1205 | side_field_enum_bitmap("bit_2_le", &myenum_bitmap, side_elem(side_type_u32_le(side_attr_list()))), | |
ea32e5fc MD |
1206 | ), |
1207 | side_attr_list() | |
1208 | ); | |
1209 | ||
1210 | static | |
1211 | void test_enum_bitmap(void) | |
1212 | { | |
af6aa6e1 MD |
1213 | side_event_cond(my_provider_event_enum_bitmap) { |
1214 | side_arg_define_vec(myarray, | |
1215 | side_arg_list( | |
1216 | side_arg_u32(0), | |
1217 | side_arg_u32(0), | |
1218 | side_arg_u32(0), | |
1219 | side_arg_u32(0), | |
1220 | side_arg_u32(0x80000000), /* bit 159 */ | |
1221 | ) | |
1222 | ); | |
1223 | side_event_call(my_provider_event_enum_bitmap, | |
1224 | side_arg_list( | |
bab5d6e4 MD |
1225 | side_arg_u32(1 << 0), |
1226 | side_arg_u32(1 << 1), | |
1227 | side_arg_u8(1 << 2), | |
1228 | side_arg_u8(1 << 3), | |
1229 | side_arg_u32(1 << 30), | |
1230 | side_arg_u32(1 << 31), | |
1231 | side_arg_u64(1ULL << 63), | |
1232 | side_arg_u64((1ULL << 1) | (1ULL << 63)), | |
4cc2880b | 1233 | side_arg_byte(1 << 2), |
bab5d6e4 MD |
1234 | side_arg_array(&myarray), |
1235 | side_arg_vla(&myarray), | |
8bdd5c12 MD |
1236 | #if SIDE_BYTE_ORDER == SIDE_LITTLE_ENDIAN |
1237 | side_arg_u32(side_bswap_32(1 << 2)), | |
1238 | side_arg_u32(1 << 2), | |
1239 | #else | |
1240 | side_arg_u32(0x06000000), | |
1241 | side_arg_u32(side_bswap_32(1 << 2)), | |
1242 | #endif | |
af6aa6e1 MD |
1243 | ) |
1244 | ); | |
1245 | } | |
ea32e5fc MD |
1246 | } |
1247 | ||
7aec0d09 MD |
1248 | static uint8_t blob_fixint[] = { 0x55, 0x44, 0x33, 0x22, 0x11 }; |
1249 | ||
89747802 | 1250 | side_static_event_variadic(my_provider_event_blob, "myprovider", "myeventblob", SIDE_LOGLEVEL_DEBUG, |
7aec0d09 | 1251 | side_field_list( |
f7653b43 MD |
1252 | side_field_byte("blobfield", side_attr_list()), |
1253 | side_field_array("arrayblob", side_elem(side_type_byte(side_attr_list())), 3, side_attr_list()), | |
1254 | side_field_array("arrayblobfix", side_elem(side_type_byte(side_attr_list())), SIDE_ARRAY_SIZE(blob_fixint), side_attr_list()), | |
1255 | side_field_vla("vlablobfix", side_elem(side_type_byte(side_attr_list())), side_attr_list()), | |
7aec0d09 MD |
1256 | ), |
1257 | side_attr_list() | |
1258 | ); | |
1259 | ||
1260 | static | |
1261 | void test_blob(void) | |
1262 | { | |
d5cdb129 | 1263 | side_event_cond(my_provider_event_blob) { |
f7653b43 | 1264 | side_arg_define_vec(myarray, side_arg_list(side_arg_byte(1), side_arg_byte(2), side_arg_byte(3))); |
199e7aa9 MD |
1265 | side_arg_dynamic_define_vec(myvla, |
1266 | side_arg_list( | |
f7653b43 MD |
1267 | side_arg_dynamic_byte(0x22, side_attr_list()), |
1268 | side_arg_dynamic_byte(0x33, side_attr_list()), | |
8d20e708 MD |
1269 | ), |
1270 | side_attr_list() | |
199e7aa9 | 1271 | ); |
d5cdb129 | 1272 | side_event_call_variadic(my_provider_event_blob, |
7aec0d09 | 1273 | side_arg_list( |
f7653b43 | 1274 | side_arg_byte(0x55), |
7aec0d09 | 1275 | side_arg_array(&myarray), |
f7653b43 MD |
1276 | side_arg_array_byte(blob_fixint), |
1277 | side_arg_vla_byte(blob_fixint, SIDE_ARRAY_SIZE(blob_fixint)), | |
199e7aa9 MD |
1278 | ), |
1279 | side_arg_list( | |
1280 | side_arg_dynamic_field("varblobfield", | |
f7653b43 | 1281 | side_arg_dynamic_byte(0x55, side_attr_list()) |
199e7aa9 | 1282 | ), |
8d20e708 MD |
1283 | side_arg_dynamic_field("varblobvla", side_arg_dynamic_vla(&myvla)), |
1284 | ), | |
1285 | side_attr_list() | |
7aec0d09 MD |
1286 | ); |
1287 | } | |
1288 | } | |
ea32e5fc | 1289 | |
89747802 | 1290 | side_static_event_variadic(my_provider_event_format_string, |
71aa8975 MD |
1291 | "myprovider", "myeventformatstring", SIDE_LOGLEVEL_DEBUG, |
1292 | side_field_list( | |
1293 | side_field_string("fmt", side_attr_list()), | |
1294 | ), | |
1295 | side_attr_list( | |
1296 | side_attr("lang.c.format_string", side_attr_bool(true)), | |
1297 | ) | |
1298 | ); | |
1299 | ||
1300 | static | |
1301 | void test_fmt_string(void) | |
1302 | { | |
71aa8975 MD |
1303 | side_event_cond(my_provider_event_format_string) { |
1304 | side_arg_dynamic_define_vec(args, | |
1305 | side_arg_list( | |
1306 | side_arg_dynamic_string("blah", side_attr_list()), | |
1307 | side_arg_dynamic_s32(123, side_attr_list()), | |
1308 | ), | |
1309 | side_attr_list() | |
1310 | ); | |
1311 | side_event_call_variadic(my_provider_event_format_string, | |
1312 | side_arg_list( | |
1313 | side_arg_string("This is a formatted string with str: %s int: %d"), | |
1314 | ), | |
1315 | side_arg_list( | |
1316 | side_arg_dynamic_field("arguments", side_arg_dynamic_vla(&args)), | |
1317 | ), | |
1318 | side_attr_list() | |
1319 | ); | |
1320 | } | |
1321 | } | |
1322 | ||
8bdd5c12 MD |
1323 | side_static_event_variadic(my_provider_event_endian, "myprovider", "myevent_endian", SIDE_LOGLEVEL_DEBUG, |
1324 | side_field_list( | |
1325 | side_field_u16_le("u16_le", side_attr_list()), | |
1326 | side_field_u32_le("u32_le", side_attr_list()), | |
1327 | side_field_u64_le("u64_le", side_attr_list()), | |
1328 | side_field_s16_le("s16_le", side_attr_list()), | |
1329 | side_field_s32_le("s32_le", side_attr_list()), | |
1330 | side_field_s64_le("s64_le", side_attr_list()), | |
1331 | side_field_u16_be("u16_be", side_attr_list()), | |
1332 | side_field_u32_be("u32_be", side_attr_list()), | |
1333 | side_field_u64_be("u64_be", side_attr_list()), | |
1334 | side_field_s16_be("s16_be", side_attr_list()), | |
1335 | side_field_s32_be("s32_be", side_attr_list()), | |
1336 | side_field_s64_be("s64_be", side_attr_list()), | |
1337 | ), | |
1338 | side_attr_list() | |
1339 | ); | |
1340 | ||
1341 | static | |
1342 | void test_endian(void) | |
1343 | { | |
1344 | side_event_variadic(my_provider_event_endian, | |
1345 | side_arg_list( | |
1346 | #if SIDE_BYTE_ORDER == SIDE_LITTLE_ENDIAN | |
1347 | side_arg_u16(1), | |
1348 | side_arg_u32(1), | |
1349 | side_arg_u64(1), | |
1350 | side_arg_s16(1), | |
1351 | side_arg_s32(1), | |
1352 | side_arg_s64(1), | |
1353 | side_arg_u16(side_bswap_16(1)), | |
1354 | side_arg_u32(side_bswap_32(1)), | |
1355 | side_arg_u64(side_bswap_64(1)), | |
1356 | side_arg_s16(side_bswap_16(1)), | |
1357 | side_arg_s32(side_bswap_32(1)), | |
1358 | side_arg_s64(side_bswap_64(1)), | |
1359 | #else | |
1360 | side_arg_u16(side_bswap_16(1)), | |
1361 | side_arg_u32(side_bswap_32(1)), | |
1362 | side_arg_u64(side_bswap_64(1)), | |
1363 | side_arg_s16(side_bswap_16(1)), | |
1364 | side_arg_s32(side_bswap_32(1)), | |
1365 | side_arg_s64(side_bswap_64(1)), | |
1366 | side_arg_u16(1), | |
1367 | side_arg_u32(1), | |
1368 | side_arg_u64(1), | |
1369 | side_arg_s16(1), | |
1370 | side_arg_s32(1), | |
1371 | side_arg_s64(1), | |
1372 | #endif | |
1373 | ), | |
1374 | side_arg_list( | |
1375 | #if SIDE_BYTE_ORDER == SIDE_LITTLE_ENDIAN | |
1376 | side_arg_dynamic_field("u16_le", side_arg_dynamic_u16_le(1, side_attr_list())), | |
1377 | side_arg_dynamic_field("u32_le", side_arg_dynamic_u32_le(1, side_attr_list())), | |
1378 | side_arg_dynamic_field("u64_le", side_arg_dynamic_u64_le(1, side_attr_list())), | |
1379 | side_arg_dynamic_field("s16_le", side_arg_dynamic_s16_le(1, side_attr_list())), | |
1380 | side_arg_dynamic_field("s32_le", side_arg_dynamic_s32_le(1, side_attr_list())), | |
1381 | side_arg_dynamic_field("s64_le", side_arg_dynamic_s64_le(1, side_attr_list())), | |
1382 | side_arg_dynamic_field("u16_be", side_arg_dynamic_u16_be(side_bswap_16(1), side_attr_list())), | |
1383 | side_arg_dynamic_field("u32_be", side_arg_dynamic_u32_be(side_bswap_32(1), side_attr_list())), | |
1384 | side_arg_dynamic_field("u64_be", side_arg_dynamic_u64_be(side_bswap_64(1), side_attr_list())), | |
1385 | side_arg_dynamic_field("s16_be", side_arg_dynamic_s16_be(side_bswap_16(1), side_attr_list())), | |
1386 | side_arg_dynamic_field("s32_be", side_arg_dynamic_s32_be(side_bswap_32(1), side_attr_list())), | |
1387 | side_arg_dynamic_field("s64_be", side_arg_dynamic_s64_be(side_bswap_64(1), side_attr_list())), | |
1388 | #else | |
1389 | side_arg_dynamic_field("u16_le", side_arg_dynamic_u16_le(side_bswap_16(1), side_attr_list())), | |
1390 | side_arg_dynamic_field("u32_le", side_arg_dynamic_u32_le(side_bswap_32(1), side_attr_list())), | |
1391 | side_arg_dynamic_field("u64_le", side_arg_dynamic_u64_le(side_bswap_64(1), side_attr_list())), | |
1392 | side_arg_dynamic_field("s16_le", side_arg_dynamic_s16_le(side_bswap_16(1), side_attr_list())), | |
1393 | side_arg_dynamic_field("s32_le", side_arg_dynamic_s32_le(side_bswap_32(1), side_attr_list())), | |
1394 | side_arg_dynamic_field("s64_le", side_arg_dynamic_s64_le(side_bswap_64(1), side_attr_list())), | |
1395 | side_arg_dynamic_field("u16_be", side_arg_dynamic_u16_be(1, side_attr_list())), | |
1396 | side_arg_dynamic_field("u32_be", side_arg_dynamic_u32_be(1, side_attr_list())), | |
1397 | side_arg_dynamic_field("u64_be", side_arg_dynamic_u64_be(1, side_attr_list())), | |
1398 | side_arg_dynamic_field("s16_be", side_arg_dynamic_s16_be(1, side_attr_list())), | |
1399 | side_arg_dynamic_field("s32_be", side_arg_dynamic_s32_be(1, side_attr_list())), | |
1400 | side_arg_dynamic_field("s64_be", side_arg_dynamic_s64_be(1, side_attr_list())), | |
1401 | #endif | |
1402 | ), | |
1403 | side_attr_list() | |
1404 | ); | |
1405 | } | |
1406 | ||
f611d0c3 MD |
1407 | int main() |
1408 | { | |
1409 | test_fields(); | |
89747802 MD |
1410 | test_event_hidden(); |
1411 | test_event_export(); | |
c7a14585 | 1412 | test_struct_literal(); |
f611d0c3 MD |
1413 | test_struct(); |
1414 | test_array(); | |
1415 | test_vla(); | |
1416 | test_vla_visitor(); | |
cdd6e858 | 1417 | test_vla_visitor_2d(); |
ba845af5 | 1418 | test_array_fixint(); |
1533629f | 1419 | test_vla_fixint(); |
a2e2357e MD |
1420 | test_dynamic_basic_type(); |
1421 | test_dynamic_vla(); | |
465e5e7e | 1422 | test_dynamic_null(); |
c208889e MD |
1423 | test_dynamic_struct(); |
1424 | test_dynamic_nested_struct(); | |
1425 | test_dynamic_vla_struct(); | |
1426 | test_dynamic_struct_vla(); | |
948e3e72 | 1427 | test_dynamic_nested_vla(); |
19fa6aa2 | 1428 | test_variadic(); |
41c4d119 | 1429 | test_static_variadic(); |
4f40d951 MD |
1430 | test_bool(); |
1431 | test_dynamic_bool(); | |
8ceca0cd | 1432 | test_dynamic_vla_with_visitor(); |
2b359235 | 1433 | test_dynamic_struct_with_visitor(); |
65010f43 | 1434 | test_event_user_attribute(); |
a848763d | 1435 | test_field_user_attribute(); |
808bd9bf MD |
1436 | test_variadic_attr(); |
1437 | test_variadic_vla_attr(); | |
1438 | test_variadic_struct_attr(); | |
fb25b355 MD |
1439 | test_float(); |
1440 | test_variadic_float(); | |
79f677ba | 1441 | test_enum(); |
ea32e5fc | 1442 | test_enum_bitmap(); |
7aec0d09 | 1443 | test_blob(); |
71aa8975 | 1444 | test_fmt_string(); |
8bdd5c12 | 1445 | test_endian(); |
f611d0c3 MD |
1446 | return 0; |
1447 | } |