X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Futils%2Ftestapp%2Fgen-ust-events%2Fgen-ust-events.cpp;h=3b62ed0dfee9a80baa82b6cb50c0c05dcd0232ec;hb=HEAD;hp=5c5ba3114b4ad2a04d3e2eed88d9919eff0101d0;hpb=28ab034a2c3582d07d3423d2d746731f87d3969f;p=lttng-tools.git diff --git a/tests/utils/testapp/gen-ust-events/gen-ust-events.cpp b/tests/utils/testapp/gen-ust-events/gen-ust-events.cpp index 5c5ba3114..3b62ed0df 100644 --- a/tests/utils/testapp/gen-ust-events/gen-ust-events.cpp +++ b/tests/utils/testapp/gen-ust-events/gen-ust-events.cpp @@ -30,15 +30,17 @@ static struct option long_options[] = { /* These options set a flag. */ - { "iter", required_argument, 0, 'i' }, - { "wait", required_argument, 0, 'w' }, - { "sync-after-first-event", required_argument, 0, 'a' }, - { "sync-before-last-event", required_argument, 0, 'b' }, - { "sync-before-last-event-touch", required_argument, 0, 'c' }, - { "sync-before-exit", required_argument, 0, 'd' }, - { "sync-before-exit-touch", required_argument, 0, 'e' }, - { "emit-end-event", no_argument, 0, 'f' }, - { 0, 0, 0, 0 } + { "iter", required_argument, nullptr, 'i' }, + { "wait", required_argument, nullptr, 'w' }, + { "sync-application-in-main-touch", required_argument, nullptr, 'a' }, + { "sync-before-first-event", required_argument, nullptr, 'b' }, + { "sync-after-first-event", required_argument, nullptr, 'c' }, + { "sync-before-last-event", required_argument, nullptr, 'd' }, + { "sync-before-last-event-touch", required_argument, nullptr, 'e' }, + { "sync-before-exit", required_argument, nullptr, 'f' }, + { "sync-before-exit-touch", required_argument, nullptr, 'g' }, + { "emit-end-event", no_argument, nullptr, 'h' }, + { nullptr, 0, nullptr, 0 } }; int main(int argc, char **argv) @@ -54,17 +56,19 @@ int main(int argc, char **argv) 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; - char *before_last_event_file_path = NULL; + char *application_in_main_file_path = nullptr; + char *before_first_event_file_path = nullptr; + char *after_first_event_file_path = nullptr; + char *before_last_event_file_path = nullptr; /* * Touch a file to indicate that all events except one were * generated. */ - char *before_last_event_file_path_touch = NULL; + char *before_last_event_file_path_touch = nullptr; /* Touch file when we are exiting */ - char *before_exit_file_path_touch = NULL; + char *before_exit_file_path_touch = nullptr; /* Wait on file before exiting */ - char *before_exit_file_path = NULL; + char *before_exit_file_path = nullptr; /* Emit an end event */ bool emit_end_event = false; @@ -72,25 +76,31 @@ int main(int argc, char **argv) net_values[i] = htonl(net_values[i]); } - while ((option = getopt_long(argc, argv, "i:w:a:b:c:d:e:f", long_options, &option_index)) != - -1) { + while ((option = getopt_long( + argc, argv, "i:w:a:b:c:d:e:f:g:h", long_options, &option_index)) != -1) { switch (option) { case 'a': - after_first_event_file_path = strdup(optarg); + application_in_main_file_path = strdup(optarg); break; case 'b': - before_last_event_file_path = strdup(optarg); + before_first_event_file_path = strdup(optarg); break; case 'c': - before_last_event_file_path_touch = strdup(optarg); + after_first_event_file_path = strdup(optarg); break; case 'd': - before_exit_file_path = strdup(optarg); + before_last_event_file_path = strdup(optarg); break; case 'e': - before_exit_file_path_touch = strdup(optarg); + before_last_event_file_path_touch = strdup(optarg); break; case 'f': + before_exit_file_path = strdup(optarg); + break; + case 'g': + before_exit_file_path_touch = strdup(optarg); + break; + case 'h': emit_end_event = true; break; case 'i': @@ -129,6 +139,14 @@ int main(int argc, char **argv) goto end; } + if (application_in_main_file_path) { + create_file(application_in_main_file_path); + } + + if (before_first_event_file_path) { + wait_on_file(before_first_event_file_path); + } + for (i = 0; nr_iter < 0 || i < nr_iter; i++) { if (nr_iter >= 0 && i == nr_iter - 1) { if (before_last_event_file_path_touch) { @@ -204,6 +222,8 @@ int main(int argc, char **argv) } } end: + free(application_in_main_file_path); + free(before_first_event_file_path); free(after_first_event_file_path); free(before_last_event_file_path); free(before_last_event_file_path_touch);