Adds two sync points:
`--sync-in-main`: create a file when `gen-ust-nevents` when app is in
main,
`--sync-before-first-event`: wait on a file before starting to
generate any events.
Those two sync points allow for tests to do work when the testapp has
reached main BUT before any events are generated.
This is useful to perform actions on a UST channel once tracing has
started and is active on a particular app.
For example, we want to test a scenario where events are enabled once an
app is already generating other events.
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Id501c8b373e1a9b43aad6caef11672fe6c30a55a
/* These options set a flag. */
{"iter", required_argument, 0, 'i'},
{"wait", required_argument, 0, 'w'},
/* 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'},
float flt = 2222.0;
unsigned int nr_iter = 100;
useconds_t nr_usec = 0;
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) {
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;
case 'i':
nr_iter = atoi(optarg);
break;
+ /*
+ * 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);
for (i = 0; i < nr_iter; i++) {
netint = htonl(i);
- 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);