Force usage of assert() condition when NDEBUG is defined
[lttng-tools.git] / tests / regression / tools / notification / base_client.c
index 9ba1340cb4d320876f59d53610451fdfe92fffc0..b7e1a9f42f8eef81fa0be4ef55d924eec30c3034 100644 (file)
 #include <string.h>
 #include <unistd.h>
 #include <inttypes.h>
-#include <assert.h>
 
 #include <lttng/action/action.h>
-#include <lttng/action/group.h>
+#include <lttng/action/list.h>
 #include <lttng/action/notify.h>
 #include <lttng/condition/buffer-usage.h>
 #include <lttng/condition/condition.h>
@@ -36,7 +35,7 @@ static const char *channel_name = NULL;
 static double threshold_ratio = 0.0;
 static uint64_t threshold_bytes = 0;
 static bool is_threshold_ratio = false;
-static bool use_action_group = false;
+static bool use_action_list = false;
 static enum lttng_condition_type buffer_usage_type = LTTNG_CONDITION_TYPE_UNKNOWN;
 static enum lttng_domain_type domain_type = LTTNG_DOMAIN_NONE;
 
@@ -47,12 +46,13 @@ int handle_condition(
 static
 int parse_arguments(char **argv)
 {
+       int sscanf_ret;
        const char *domain_type_string = NULL;
        const char *buffer_usage_type_string = NULL;
        const char *buffer_usage_threshold_type = NULL;
        const char *buffer_usage_threshold_value = NULL;
        const char *nr_expected_notifications_string = NULL;
-       const char *use_action_group_value = NULL;
+       const char *use_action_list_value = NULL;
 
        session_name = argv[1];
        channel_name = argv[2];
@@ -61,7 +61,7 @@ int parse_arguments(char **argv)
        buffer_usage_threshold_type = argv[5];
        buffer_usage_threshold_value = argv[6];
        nr_expected_notifications_string = argv[7];
-       use_action_group_value = argv[8];
+       use_action_list_value = argv[8];
 
        /* Parse arguments */
        /* Domain type */
@@ -91,20 +91,38 @@ int parse_arguments(char **argv)
        /* Ratio or bytes ? */
        if (!strcasecmp("bytes", buffer_usage_threshold_type)) {
                is_threshold_ratio = false;
-               sscanf(buffer_usage_threshold_value, "%" SCNu64, &threshold_bytes);
+               sscanf_ret = sscanf(buffer_usage_threshold_value, "%" SCNu64,
+                               &threshold_bytes);
+               if (sscanf_ret != 1) {
+                       printf("error: Invalid buffer usage threshold value bytes (integer), sscanf returned %d\n",
+                                       sscanf_ret);
+                       goto error;
+               }
        }
 
        if (!strcasecmp("ratio", buffer_usage_threshold_type)) {
                is_threshold_ratio = true;
-               sscanf(buffer_usage_threshold_value, "%lf", &threshold_ratio);
+               sscanf_ret = sscanf(buffer_usage_threshold_value, "%lf",
+                               &threshold_ratio);
+               if (sscanf_ret != 1) {
+                       printf("error: Invalid buffer usage threshold value ratio (float), sscanf returned %d\n",
+                                       sscanf_ret);
+                       goto error;
+               }
        }
 
        /* Number of notification to expect */
-       sscanf(nr_expected_notifications_string, "%d", &nr_expected_notifications);
+       sscanf_ret = sscanf(nr_expected_notifications_string, "%d",
+                       &nr_expected_notifications);
+       if (sscanf_ret != 1) {
+               printf("error: Invalid nr_expected_notifications, sscanf returned %d\n",
+                               sscanf_ret);
+               goto error;
+       }
 
        /* Put notify action in a group. */
-       if (!strcasecmp("1", use_action_group_value)) {
-               use_action_group = true;
+       if (!strcasecmp("1", use_action_list_value)) {
+               use_action_list = true;
        }
 
        return 0;
@@ -122,6 +140,7 @@ int main(int argc, char **argv)
        struct lttng_condition *condition = NULL;
        struct lttng_action *action = NULL;
        struct lttng_trigger *trigger = NULL;
+       enum lttng_error_code ret_code;
 
        /*
         * Disable buffering on stdout.
@@ -206,12 +225,12 @@ int main(int argc, char **argv)
                goto end;
        }
 
-       if (use_action_group) {
+       if (use_action_list) {
                struct lttng_action *notify, *group;
 
-               group = lttng_action_group_create();
+               group = lttng_action_list_create();
                if (!group) {
-                       printf("error: Could not create action group\n");
+                       printf("error: Could not create action list\n");
                        ret = 1;
                        goto end;
                }
@@ -224,9 +243,9 @@ int main(int argc, char **argv)
                        goto end;
                }
 
-               action_status = lttng_action_group_add_action(group, notify);
+               action_status = lttng_action_list_add_action(group, notify);
                if (action_status != LTTNG_ACTION_STATUS_OK) {
-                       printf("error: Could not add action notify to action group\n");
+                       printf("error: Could not add action notify to action list\n");
                        lttng_action_destroy(group);
                        lttng_action_destroy(notify);
                        ret = 1;
@@ -250,14 +269,14 @@ int main(int argc, char **argv)
                goto end;
        }
 
-       ret = lttng_register_trigger(trigger);
+       ret_code = lttng_register_trigger_with_automatic_name(trigger);
 
        /*
         * An equivalent trigger might already be registered if an other app
         * registered an equivalent trigger.
         */
-       if (ret < 0 && ret != -LTTNG_ERR_TRIGGER_EXISTS) {
-               printf("error: %s\n", lttng_strerror(ret));
+       if (ret_code != LTTNG_OK && ret_code != LTTNG_ERR_TRIGGER_EXISTS) {
+               printf("error: %s\n", lttng_strerror(-ret_code));
                ret = 1;
                goto end;
        }
This page took 0.025422 seconds and 4 git commands to generate.