X-Git-Url: http://git.lttng.org/?p=lttng-ust.git;a=blobdiff_plain;f=tests%2Fcompile%2Fapi1%2Fhello%2Fhello.c;fp=tests%2Fcompile%2Fapi1%2Fhello%2Fhello.c;h=107cf55e1051cb7f036f005939a6c07d59272318;hp=0000000000000000000000000000000000000000;hb=bebb067ef8020d5c36ab48271b0d9d9bb2b24e11;hpb=4405cc3e105e60c95939e595b8dddcd0940a0b92 diff --git a/tests/compile/api1/hello/hello.c b/tests/compile/api1/hello/hello.c new file mode 100644 index 00000000..107cf55e --- /dev/null +++ b/tests/compile/api1/hello/hello.c @@ -0,0 +1,92 @@ +/* + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (C) 2009 Pierre-Marc Fournier + * Copyright (C) 2011 Mathieu Desnoyers + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* + * Work-around inet.h missing struct mmsghdr forward declaration, with + * triggers a warning when system files warnings are enabled. + */ +struct mmsghdr; +#include +#include +#include + +#define LTTNG_UST_TRACEPOINT_DEFINE +#include "ust_tests_hello.h" + +static +void inthandler(int sig __attribute__((unused))) +{ + printf("in SIGUSR1 handler\n"); + lttng_ust_tracepoint(ust_tests_hello, tptest_sighandler); +} + +static +int init_int_handler(void) +{ + int result; + struct sigaction act; + + memset(&act, 0, sizeof(act)); + result = sigemptyset(&act.sa_mask); + if (result == -1) { + perror("sigemptyset"); + return -1; + } + + act.sa_handler = inthandler; + act.sa_flags = SA_RESTART; + + /* Only defer ourselves. Also, try to restart interrupted + * syscalls to disturb the traced program as little as possible. + */ + result = sigaction(SIGUSR1, &act, NULL); + if (result == -1) { + perror("sigaction"); + return -1; + } + + return 0; +} + +int main(int argc, char **argv) +{ + int i, netint; + long values[] = { 1, 2, 3 }; + char text[10] = "test"; + double dbl = 2.0; + float flt = 2222.0; + int delay = 0; + bool mybool = 123; /* should print "1" */ + + init_int_handler(); + + if (argc == 2) + delay = atoi(argv[1]); + + fprintf(stderr, "Hello, World!\n"); + + sleep(delay); + + fprintf(stderr, "Tracing... "); + for (i = 0; i < 1000000; i++) { + netint = htonl(i); + lttng_ust_tracepoint(ust_tests_hello, tptest, i, netint, values, + text, strlen(text), dbl, flt, mybool); + //usleep(100000); + } + fprintf(stderr, " done.\n"); + return 0; +}