testapp: gen-ust-events: augment captured fields
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 11 May 2020 17:33:30 +0000 (13:33 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 5 Mar 2021 19:39:08 +0000 (14:39 -0500)
Adds:
 - negative integer,
 - enums,
 - escaped string,
 - network array,
 - network sequence,
 - long sequence.

This partly bridges the gap between the event used for kernel testing
and the event used for userspace testing.

Bitfield array/sequence are not supported by the userspace tracer.

Change-Id: I027b9acfdcea2643201020c6c7907483cbbb2151
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Depends-on: lttng-ust: I5a800fc92e588c2a6a0e26282b0ad5f31c044479

tests/utils/testapp/gen-ust-events/gen-ust-events.c
tests/utils/testapp/gen-ust-events/tp.h

index 7ce86bcaeb874de64a7a282d65a928d68b171e69..df1e58e417fa5f464b50a01f52fc2e3a97755881 100644 (file)
@@ -48,8 +48,10 @@ int main(int argc, char **argv)
        int option;
        long values[] = { 1, 2, 3 };
        char text[10] = "test";
+       char escape[10] = "\\*";
        double dbl = 2.0;
        float flt = 2222.0;
+       uint32_t net_values[] = { 1, 2, 3 };
        int nr_iter = 100, ret = 0, first_event_file_created = 0;
        useconds_t nr_usec = 0;
        char *after_first_event_file_path = NULL;
@@ -64,6 +66,10 @@ int main(int argc, char **argv)
        /* Wait on file before exiting */
        char *before_exit_file_path = NULL;
 
+       for (i = 0; i < 3; i++) {
+               net_values[i] = htonl(net_values[i]);
+       }
+
        while ((option = getopt_long(argc, argv, "i:w:a:b:c:d:",
                        long_options, &option_index)) != -1) {
                switch (option) {
@@ -141,7 +147,7 @@ int main(int argc, char **argv)
                }
                netint = htonl(i);
                tracepoint(tp, tptest, i, netint, values, text,
-                       strlen(text), dbl, flt);
+                       strlen(text), escape, net_values, dbl, flt);
 
                /*
                 * First loop we create the file if asked to indicate
index bc1949417118dd54b4d2d618571eb4af163329f0..132f9ba4eb03930e0d732d2c29ffbdcae06853bc 100644 (file)
 #define _TRACEPOINT_TP_H
 
 #include <lttng/tracepoint.h>
+#include <stdint.h>
+
+TRACEPOINT_ENUM(
+       tp, tptest_enum,
+       TP_ENUM_VALUES(
+               ctf_enum_auto("AUTO: EXPECT 0")
+               ctf_enum_value("VALUE: 23", 23)
+               ctf_enum_value("VALUE: 27", 27)
+               ctf_enum_auto("AUTO: EXPECT 28")
+               ctf_enum_range("RANGE: 101 TO 303", 101, 303)
+               ctf_enum_auto("AUTO: EXPECT 304")
+               ctf_enum_value("VALUE: -1", -1)
+       )
+)
 
 TRACEPOINT_EVENT(tp, tptest,
        TP_ARGS(int, anint, int, netint, long *, values,
                char *, text, size_t, textlen,
+               char *, etext, uint32_t * , net_values,
                double, doublearg, float, floatarg),
        TP_FIELDS(
                ctf_integer(int, intfield, anint)
                ctf_integer_hex(int, intfield2, anint)
                ctf_integer(long, longfield, anint)
+               ctf_integer(int, signedfield, -1)
                ctf_integer_network(int, netintfield, netint)
                ctf_integer_network_hex(int, netintfieldhex, netint)
                ctf_array(long, arrfield1, values, 3)
                ctf_array_text(char, arrfield2, text, 10)
+               ctf_array_network(uint32_t, arrfield3, net_values, 3)
                ctf_sequence(char, seqfield1, text, size_t, textlen)
                ctf_sequence_text(char, seqfield2, text, size_t, textlen)
+               ctf_sequence_network(uint32_t, seqfield3, net_values, size_t, 3)
+               ctf_sequence(long, seqfield4, values, size_t, 3)
                ctf_string(stringfield, text)
+               ctf_string(stringfield2, etext)
                ctf_float(float, floatfield, floatarg)
                ctf_float(double, doublefield, doublearg)
+               ctf_enum(tp, tptest_enum, int, enum0, 0)
+               ctf_enum(tp, tptest_enum, int, enum23, 23)
+               ctf_enum(tp, tptest_enum, int, enum27, 27)
+               ctf_enum(tp, tptest_enum, int, enum28, 28)
+               ctf_enum(tp, tptest_enum, int, enum202, 202)
+               ctf_enum(tp, tptest_enum, int, enum304, 304)
+               ctf_enum(tp, tptest_enum, int, enumnegative, -1)
        )
 )
 
This page took 0.035587 seconds and 4 git commands to generate.