X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fust%2Fust_global_event_basic.c;h=ad14afbb358a42f50dd911b44c9a04ce4b94e5f4;hp=24dcec53d9d473f9b34f6491dc39fc521aeccabf;hb=88402ab64de4d6060532853322c41af0eb45a396;hpb=355f483d1713d1e047ad6256bea039cb693ae38e diff --git a/tests/ust/ust_global_event_basic.c b/tests/ust/ust_global_event_basic.c index 24dcec53d..ad14afbb3 100644 --- a/tests/ust/ust_global_event_basic.c +++ b/tests/ust/ust_global_event_basic.c @@ -35,18 +35,24 @@ int main(int argc, char **argv) { struct lttng_handle *handle = NULL; struct lttng_domain dom; - struct lttng_channel channel; + struct lttng_channel channel, channel2; struct lttng_event ev1, ev2, ev3; + struct lttng_event_context context; char *session_name = "ust_global_event_basic"; + char *session_name2 = "ust_global_event_basic2"; int ret = 0; memset(&dom, 0, sizeof(dom)); memset(&channel, 0, sizeof(channel)); + memset(&channel2, 0, sizeof(channel2)); memset(&ev1, 0, sizeof(ev1)); memset(&ev2, 0, sizeof(ev2)); memset(&ev3, 0, sizeof(ev3)); + memset(&context, 0, sizeof(context)); dom.type = LTTNG_DOMAIN_UST; + + /* Setup channel 1 */ strcpy(channel.name, "mychan"); channel.attr.overwrite = 0; channel.attr.subbuf_size = 4096; @@ -55,6 +61,15 @@ int main(int argc, char **argv) channel.attr.read_timer_interval = 200; channel.attr.output = LTTNG_EVENT_MMAP; + /* Setup channel 2 */ + strcpy(channel2.name, "mychan2"); + channel2.attr.overwrite = 0; + channel2.attr.subbuf_size = 8192; + channel2.attr.num_subbuf = 8; + channel2.attr.switch_timer_interval = 0; + channel2.attr.read_timer_interval = 500; + channel2.attr.output = LTTNG_EVENT_MMAP; + strcpy(ev1.name, "tp1"); ev1.type = LTTNG_EVENT_TRACEPOINT; ev1.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL; @@ -82,6 +97,13 @@ int main(int argc, char **argv) } PRINT_OK(); + printf("Creating tracing session 2 (%s): ", argv[1]); + if ((ret = lttng_create_session(session_name2, argv[1])) < 0) { + printf("error creating the session : %s\n", lttng_strerror(ret)); + goto create_fail; + } + PRINT_OK(); + printf("Creating session handle: "); if ((handle = lttng_create_handle(session_name, &dom)) == NULL) { printf("error creating handle: %s\n", lttng_strerror(ret)); @@ -96,27 +118,89 @@ int main(int argc, char **argv) } PRINT_OK(); - printf("Enabling %s UST event: ", ev1.name); + printf("Enabling %s UST channel2: ", channel2.name); + if ((ret = lttng_enable_channel(handle, &channel2)) < 0) { + printf("error enable channel: %s\n", lttng_strerror(ret)); + goto enable_fail; + } + PRINT_OK(); + + printf("Enabling %s UST event in channel %s: ", ev1.name, channel.name); if ((ret = lttng_enable_event(handle, &ev1, channel.name)) < 0) { printf("error enabling event: %s\n", lttng_strerror(ret)); goto enable_fail; } PRINT_OK(); - printf("Enabling %s UST event: ", ev2.name); + printf("Enabling %s UST event in channel %s: ", ev2.name, channel.name); if ((ret = lttng_enable_event(handle, &ev2, channel.name)) < 0) { printf("error enabling event: %s\n", lttng_strerror(ret)); goto enable_fail; } PRINT_OK(); - printf("Enabling %s UST event: ", ev3.name); - if ((ret = lttng_enable_event(handle, &ev3, channel.name)) < 0) { + printf("Enabling %s UST event in channel %s: ", ev3.name, channel2.name); + if ((ret = lttng_enable_event(handle, &ev3, channel2.name)) < 0) { printf("error enabling event: %s\n", lttng_strerror(ret)); goto enable_fail; } PRINT_OK(); + context.ctx = LTTNG_EVENT_CONTEXT_VPID; + + printf("Adding context VPID to UST event %s in channel %s: ", ev1.name, + channel.name); + if ((ret = lttng_add_context(handle, &context, ev1.name, + channel.name)) < 0) { + printf("error adding context VPID: %s\n", lttng_strerror(ret)); + goto context_fail; + } + PRINT_OK(); + + context.ctx = LTTNG_EVENT_CONTEXT_VTID; + + printf("Adding context VTID to UST event %s in channel %s: ", ev1.name, + channel.name); + if ((ret = lttng_add_context(handle, &context, ev1.name, + channel.name)) < 0) { + printf("error adding context VTID: %s\n", lttng_strerror(ret)); + goto context_fail; + } + PRINT_OK(); + + context.ctx = LTTNG_EVENT_CONTEXT_PTHREAD_ID; + + printf("Adding context PTHREAD_ID to UST event %s in channel %s: ", + ev1.name, channel.name); + if ((ret = lttng_add_context(handle, &context, ev1.name, + channel.name)) < 0) { + printf("error adding context PTHREAD_ID: %s\n", lttng_strerror(ret)); + goto context_fail; + } + PRINT_OK(); + + context.ctx = LTTNG_EVENT_CONTEXT_PROCNAME; + + printf("Adding context PROCNAME to UST event %s in channel %s: ", + ev1.name, channel.name); + if ((ret = lttng_add_context(handle, &context, ev1.name, + channel.name)) < 0) { + printf("error adding context PROCNAME: %s\n", lttng_strerror(ret)); + goto context_fail; + } + PRINT_OK(); + + context.ctx = LTTNG_EVENT_CONTEXT_PROCNAME; + + printf("Adding context PROCNAME to UST event %s in channel %s: ", + ev3.name, channel2.name); + if ((ret = lttng_add_context(handle, &context, ev3.name, + channel2.name)) < 0) { + printf("error adding context PROCNAME: %s\n", lttng_strerror(ret)); + goto context_fail; + } + PRINT_OK(); + printf("Disabling %s UST event: ", ev1.name); if ((ret = lttng_disable_event(handle, ev1.name, channel.name)) < 0) { printf("error enabling event: %s\n", lttng_strerror(ret)); @@ -125,7 +209,7 @@ int main(int argc, char **argv) PRINT_OK(); printf("Disabling %s UST event: ", ev3.name); - if ((ret = lttng_disable_event(handle, ev3.name, channel.name)) < 0) { + if ((ret = lttng_disable_event(handle, ev3.name, channel2.name)) < 0) { printf("error enabling event: %s\n", lttng_strerror(ret)); goto enable_fail; } @@ -145,6 +229,13 @@ int main(int argc, char **argv) } PRINT_OK(); + printf("Disabling channel %s: ", channel2.name); + if ((ret = lttng_disable_channel(handle, channel2.name)) < 0) { + printf("error disabling channel: %s\n", lttng_strerror(ret)); + goto enable_fail; + } + PRINT_OK(); + printf("Start tracing: "); if ((ret = lttng_start_tracing(session_name)) < 0) { printf("error starting tracing: %s\n", lttng_strerror(ret)); @@ -177,6 +268,12 @@ int main(int argc, char **argv) } PRINT_OK(); + printf("Destroy tracing session 2: "); + if ((ret = lttng_destroy_session(session_name2)) < 0) { + printf("error destroying session 2: %s\n", lttng_strerror(ret)); + } + PRINT_OK(); + printf("Destroy tracing session: "); if ((ret = lttng_destroy_session(session_name)) < 0) { printf("error destroying session: %s\n", lttng_strerror(ret)); @@ -185,14 +282,16 @@ int main(int argc, char **argv) return 0; -create_fail: - assert(ret != 0); handle_fail: assert(handle != NULL); +create_fail: + assert(ret != 0); stop_fail: start_fail: +context_fail: enable_fail: + lttng_destroy_session(session_name2); lttng_destroy_session(session_name); lttng_destroy_handle(handle);