X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Fnotification%2Fnotification.c;h=364d41895bb78531f61b20a1842bfe4a02960680;hb=67c93c15b77fa2089110ade9d493b17df6e90fc2;hp=68ec64d01cee1fd1c64b1b9500f90e9a77148bb9;hpb=9479b7a777d49a3d6a30af20693173ab0c4b00d7;p=lttng-tools.git diff --git a/tests/regression/tools/notification/notification.c b/tests/regression/tools/notification/notification.c index 68ec64d01..364d41895 100644 --- a/tests/regression/tools/notification/notification.c +++ b/tests/regression/tools/notification/notification.c @@ -87,6 +87,7 @@ void wait_on_file(const char *path, bool file_exist) } } +static int write_pipe(const char *path, uint8_t data) { int ret = 0; @@ -118,6 +119,7 @@ end: return ret; } +static int stop_consumer(const char **argv) { int ret = 0, i; @@ -128,6 +130,7 @@ int stop_consumer(const char **argv) return ret; } +static int resume_consumer(const char **argv) { int ret = 0, i; @@ -138,7 +141,8 @@ int resume_consumer(const char **argv) return ret; } -int suspend_application() +static +int suspend_application(void) { int ret; struct stat buf; @@ -166,6 +170,7 @@ error: } +static int resume_application() { int ret; @@ -196,6 +201,7 @@ error: } +static void test_triggers_buffer_usage_condition(const char *session_name, const char *channel_name, enum lttng_domain_type domain_type, @@ -389,6 +395,7 @@ void wait_data_pending(const char *session_name) } while (ret != 0); } +static void test_notification_channel(const char *session_name, const char *channel_name, const enum lttng_domain_type domain_type, const char **argv) { int ret = 0; @@ -594,7 +601,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, ¬ification); + do { + nc_status = lttng_notification_channel_get_next_notification(notification_channel, ¬ification); + } 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, @@ -618,7 +627,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, ¬ification); + do { + nc_status = lttng_notification_channel_get_next_notification(notification_channel, ¬ification); + } 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, @@ -631,7 +642,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, ¬ification); + do { + nc_status = lttng_notification_channel_get_next_notification(notification_channel, ¬ification); + } 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"); @@ -643,7 +656,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, ¬ification); + do { + nc_status = lttng_notification_channel_get_next_notification(notification_channel, ¬ification); + } 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"); @@ -655,7 +670,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, ¬ification); + do { + nc_status = lttng_notification_channel_get_next_notification(notification_channel, ¬ification); + } 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");