X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Futils%2Ftestapp%2Fgen-ust-nevents%2Fgen-ust-nevents.c;h=ec71023de4d872632d59aef98d1f14037bc854bc;hp=3293687314aea3e213f470361d5a137bd0b5eace;hb=4bb5f0b0dcbd4c7bd09342be42f3b062a78c27ed;hpb=8db430e7dcb5305c60a93ccb2fc90e8e0f006915 diff --git a/tests/utils/testapp/gen-ust-nevents/gen-ust-nevents.c b/tests/utils/testapp/gen-ust-nevents/gen-ust-nevents.c index 329368731..ec71023de 100644 --- a/tests/utils/testapp/gen-ust-nevents/gen-ust-nevents.c +++ b/tests/utils/testapp/gen-ust-nevents/gen-ust-nevents.c @@ -27,6 +27,8 @@ static struct option long_options[] = /* These options set a flag. */ {"iter", required_argument, 0, 'i'}, {"wait", required_argument, 0, 'w'}, + {"create-in-main", required_argument, 0, 'm'}, + {"wait-before-first-event", required_argument, 0, 'b'}, {0, 0, 0, 0} }; @@ -39,10 +41,18 @@ int main(int argc, char **argv) float flt = 2222.0; unsigned int nr_iter = 100; useconds_t nr_usec = 0; + char *wait_before_first_event_file_path = NULL; + char *create_in_main_file_path = NULL; - while ((option = getopt_long(argc, argv, "i:w:", + while ((option = getopt_long(argc, argv, "i:w:b:m:", long_options, &option_index)) != -1) { switch (option) { + case 'b': + wait_before_first_event_file_path = strdup(optarg); + break; + case 'm': + create_in_main_file_path = strdup(optarg); + break; case 'i': nr_iter = atoi(optarg); break; @@ -51,7 +61,6 @@ int main(int argc, char **argv) break; case '?': /* getopt_long already printed an error message. */ - break; default: ret = -1; goto end; @@ -63,6 +72,23 @@ int main(int argc, char **argv) goto end; } + /* + * The two following sync points allow for tests to do work after the + * app has started BUT before it generates any events. + */ + if (create_in_main_file_path) { + ret = create_file(create_in_main_file_path); + if (ret != 0) { + goto end; + } + } + + if (wait_before_first_event_file_path) { + ret = wait_on_file(wait_before_first_event_file_path); + if (ret != 0) { + goto end; + } + } for (i = 0; i < nr_iter; i++) { netint = htonl(i); @@ -88,5 +114,7 @@ int main(int argc, char **argv) } end: - exit(!ret ? EXIT_SUCCESS : EXIT_FAILURE); + free(create_in_main_file_path); + free(wait_before_first_event_file_path); + exit(!ret ? EXIT_SUCCESS : EXIT_FAILURE); }