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