Fix: tests: interrupting get_next_notification causes test to fail
[lttng-tools.git] / tests / regression / tools / notification / notification.c
index b6ef0df4f1dc6c7ef9f751ad4a2a54b7d15e4745..89e3d9ef26beb848b4292d93596ebe7193cf4b2e 100644 (file)
@@ -606,7 +606,9 @@ void test_notification_channel(const char *session_name, const char *channel_nam
        lttng_start_tracing(session_name);
 
        /* Wait for high notification */
-       nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       do {
+               nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       } while (nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK
                        && notification
                        && lttng_condition_get_type(lttng_notification_get_condition(notification)) == LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH,
@@ -630,7 +632,9 @@ void test_notification_channel(const char *session_name, const char *channel_nam
        nc_status = lttng_notification_channel_subscribe(notification_channel, low_condition);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK, "subscribe with pending notification");
 
-       nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       do {
+               nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       } while (nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK
                        && notification
                        && lttng_condition_get_type(lttng_notification_get_condition(notification)) == LTTNG_CONDITION_TYPE_BUFFER_USAGE_LOW,
@@ -643,7 +647,9 @@ void test_notification_channel(const char *session_name, const char *channel_nam
        resume_application();
        lttng_start_tracing(session_name);
 
-       nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       do {
+               nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       } while (nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK && notification &&
                        lttng_condition_get_type(lttng_notification_get_condition(notification)) == LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH,
                        "High notification received after intermediary communication");
@@ -655,7 +661,9 @@ void test_notification_channel(const char *session_name, const char *channel_nam
        resume_consumer(argv);
        wait_data_pending(session_name);
 
-       nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       do {
+               nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       } while (nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK && notification &&
                        lttng_condition_get_type(lttng_notification_get_condition(notification)) == LTTNG_CONDITION_TYPE_BUFFER_USAGE_LOW,
                        "Low notification received after re-subscription");
@@ -667,7 +675,9 @@ void test_notification_channel(const char *session_name, const char *channel_nam
        /* Stop consumer to force a high notification */
        lttng_start_tracing(session_name);
 
-       nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       do {
+               nc_status = lttng_notification_channel_get_next_notification(notification_channel, &notification);
+       } while (nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED);
        ok(nc_status == LTTNG_NOTIFICATION_CHANNEL_STATUS_OK && notification &&
                        lttng_condition_get_type(lttng_notification_get_condition(notification)) == LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH,
                        "High notification");
This page took 0.023997 seconds and 4 git commands to generate.