X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Funit%2Ftest_action.cpp;h=ad323e9acc169592c68de995f4344fe6d6e0e997;hp=8657be1dcb4eb4c587c5e90bf36de24818ccca4e;hb=HEAD;hpb=f46376a14da2eb796690cb4e718e8b213839d6ea diff --git a/tests/unit/test_action.cpp b/tests/unit/test_action.cpp index 8657be1dc..52f6d26ca 100644 --- a/tests/unit/test_action.cpp +++ b/tests/unit/test_action.cpp @@ -9,39 +9,40 @@ * */ -#include -#include -#include -#include - -#include +#include +#include +#include -#include -#include -#include +#include #include +#include #include -#include +#include #include #include #include #include #include +#include +#include +#include +#include +#include + /* For error.h */ int lttng_opt_quiet = 1; int lttng_opt_verbose; int lttng_opt_mi; -#define NUM_TESTS 60 +#define NUM_TESTS 71 -static void test_action_notify(void) +static void test_action_notify() { int ret; enum lttng_action_status status; - struct lttng_action *notify_action = NULL, - *notify_action_from_buffer = NULL; - struct lttng_rate_policy *policy = NULL, *default_policy; + struct lttng_action *notify_action = nullptr, *notify_action_from_buffer = nullptr; + struct lttng_rate_policy *policy = nullptr, *default_policy; struct lttng_payload payload; lttng_payload_init(&payload); @@ -56,18 +57,15 @@ static void test_action_notify(void) notify_action = lttng_action_notify_create(); ok(notify_action, "Create notify action"); ok(lttng_action_get_type(notify_action) == LTTNG_ACTION_TYPE_NOTIFY, - "Action has type LTTNG_ACTION_TYPE_NOTIFY"); + "Action has type LTTNG_ACTION_TYPE_NOTIFY"); /* Validate the default policy for a notify action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_notify_get_rate_policy( - notify_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_notify_get_rate_policy(notify_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - default_policy, - cur_policy), - "Default policy is every n=1"); + lttng_rate_policy_is_equal(default_policy, cur_policy), + "Default policy is every n=1"); } /* Set a custom policy. */ @@ -76,31 +74,24 @@ static void test_action_notify(void) /* Validate the custom policy for a notify action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_notify_get_rate_policy( - notify_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_notify_get_rate_policy(notify_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - policy, - cur_policy), - "Notify action policy get"); + lttng_rate_policy_is_equal(policy, cur_policy), + "Notify action policy get"); } ret = lttng_action_serialize(notify_action, &payload); ok(ret == 0, "Action notify serialized"); { - struct lttng_payload_view view = - lttng_payload_view_from_payload( - &payload, 0, -1); - (void) lttng_action_create_from_payload( - &view, ¬ify_action_from_buffer); + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, ¬ify_action_from_buffer); } - ok(notify_action_from_buffer, - "Notify action created from payload is non-null"); + ok(notify_action_from_buffer, "Notify action created from payload is non-null"); ok(lttng_action_is_equal(notify_action, notify_action_from_buffer), - "Serialized and de-serialized notify action are equal"); + "Serialized and de-serialized notify action are equal"); lttng_rate_policy_destroy(default_policy); lttng_rate_policy_destroy(policy); @@ -109,13 +100,99 @@ static void test_action_notify(void) lttng_payload_reset(&payload); } +static void test_action_list(void) +{ + int ret, action_idx; + struct lttng_action *list_action = NULL, *list_action_from_buffer = NULL, + *stop_session_action = NULL, *notify_action = NULL, + *start_session_action = NULL; + struct lttng_payload payload; + + lttng_payload_init(&payload); + + list_action = lttng_action_list_create(); + ok(list_action, "Create list action"); + ok(lttng_action_get_type(list_action) == LTTNG_ACTION_TYPE_LIST, + "Action has type LTTNG_ACTION_TYPE_LIST"); + + start_session_action = lttng_action_start_session_create(); + (void) lttng_action_start_session_set_session_name(start_session_action, "une-session"); + + stop_session_action = lttng_action_stop_session_create(); + (void) lttng_action_stop_session_set_session_name(stop_session_action, "une-autre-session"); + notify_action = lttng_action_notify_create(); + + lttng_action_list_add_action(list_action, start_session_action); + lttng_action_list_add_action(list_action, stop_session_action); + lttng_action_list_add_action(list_action, notify_action); + + ret = lttng_action_serialize(list_action, &payload); + ok(ret == 0, "Action list serialized"); + + { + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, &list_action_from_buffer); + } + ok(list_action_from_buffer, "Notify action created from payload is non-null"); + + ok(lttng_action_is_equal(list_action, list_action_from_buffer), + "Serialized and de-serialized list action are equal"); + + action_idx = 0; + for (auto action : lttng::ctl::const_action_list_view(list_action)) { + enum lttng_action_type inner_action_type = lttng_action_get_type(action); + switch (action_idx) { + case 0: + ok(inner_action_type == LTTNG_ACTION_TYPE_START_SESSION, + "First inner action of action list is `start-session` action"); + break; + case 1: + ok(inner_action_type == LTTNG_ACTION_TYPE_STOP_SESSION, + "Second inner action of action list is `stop-session` action"); + break; + case 2: + ok(inner_action_type == LTTNG_ACTION_TYPE_NOTIFY, + "Third inner action of action list is `notify` action"); + break; + } + action_idx++; + } + + action_idx = 0; + for (auto action : lttng::ctl::action_list_view(list_action)) { + enum lttng_action_type inner_action_type = lttng_action_get_type(action); + switch (action_idx) { + case 0: + ok(inner_action_type == LTTNG_ACTION_TYPE_START_SESSION, + "First inner action of action list is `start-session` action"); + break; + case 1: + ok(inner_action_type == LTTNG_ACTION_TYPE_STOP_SESSION, + "Second inner action of action list is `stop-session` action"); + break; + case 2: + ok(inner_action_type == LTTNG_ACTION_TYPE_NOTIFY, + "Third inner action of action list is `notify` action"); + break; + } + action_idx++; + } + + lttng_action_destroy(list_action); + lttng_action_destroy(list_action_from_buffer); + lttng_action_destroy(start_session_action); + lttng_action_destroy(stop_session_action); + lttng_action_destroy(notify_action); + lttng_payload_reset(&payload); +} + static void test_action_rotate_session(void) { int ret; enum lttng_action_status status; - struct lttng_action *rotate_session_action = NULL, - *rotate_session_action_from_buffer = NULL; - struct lttng_rate_policy *policy = NULL, *default_policy; + struct lttng_action *rotate_session_action = nullptr, + *rotate_session_action_from_buffer = nullptr; + struct lttng_rate_policy *policy = nullptr, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -131,62 +208,50 @@ static void test_action_rotate_session(void) rotate_session_action = lttng_action_rotate_session_create(); ok(rotate_session_action, "Create rotate_session action"); - ok(lttng_action_get_type(rotate_session_action) == - LTTNG_ACTION_TYPE_ROTATE_SESSION, - "Action has type LTTNG_ACTION_TYPE_ROTATE_SESSION"); + ok(lttng_action_get_type(rotate_session_action) == LTTNG_ACTION_TYPE_ROTATE_SESSION, + "Action has type LTTNG_ACTION_TYPE_ROTATE_SESSION"); /* Session name setter. */ - status = lttng_action_rotate_session_set_session_name(NULL, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,NULL) expect invalid"); - status = lttng_action_rotate_session_set_session_name( - rotate_session_action, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (object,NULL) expect invalid"); - status = lttng_action_rotate_session_set_session_name( - NULL, session_name); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,object) expect invalid"); + status = lttng_action_rotate_session_set_session_name(nullptr, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,NULL) expect invalid"); + status = lttng_action_rotate_session_set_session_name(rotate_session_action, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (object,NULL) expect invalid"); + status = lttng_action_rotate_session_set_session_name(nullptr, session_name); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,object) expect invalid"); /* Set the session name */ - status = lttng_action_rotate_session_set_session_name( - rotate_session_action, session_name); + status = lttng_action_rotate_session_set_session_name(rotate_session_action, session_name); ok(status == LTTNG_ACTION_STATUS_OK, "Set session name"); - status = lttng_action_rotate_session_get_session_name( - rotate_session_action, &get_session_name); - ok(status == LTTNG_ACTION_STATUS_OK && - !strcmp(session_name, get_session_name), - "Get session name, expected `%s` got `%s`", - session_name, get_session_name); + status = lttng_action_rotate_session_get_session_name(rotate_session_action, + &get_session_name); + ok(status == LTTNG_ACTION_STATUS_OK && !strcmp(session_name, get_session_name), + "Get session name, expected `%s` got `%s`", + session_name, + get_session_name); /* Validate the default policy for a rotate_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_rotate_session_get_rate_policy( - rotate_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_rotate_session_get_rate_policy(rotate_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - default_policy, - cur_policy), - "Default policy is every n=1"); + lttng_rate_policy_is_equal(default_policy, cur_policy), + "Default policy is every n=1"); } /* Set a custom policy. */ - status = lttng_action_rotate_session_set_rate_policy( - rotate_session_action, policy); + status = lttng_action_rotate_session_set_rate_policy(rotate_session_action, policy); ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a rotate_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_rotate_session_get_rate_policy( - rotate_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_rotate_session_get_rate_policy(rotate_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - policy, - cur_policy), - "rotate_session action policy get"); + lttng_rate_policy_is_equal(policy, cur_policy), + "rotate_session action policy get"); } /* Ser/des tests. */ @@ -194,18 +259,14 @@ static void test_action_rotate_session(void) ok(ret == 0, "Action rotate_session serialized"); { - struct lttng_payload_view view = - lttng_payload_view_from_payload( - &payload, 0, -1); - (void) lttng_action_create_from_payload( - &view, &rotate_session_action_from_buffer); + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, &rotate_session_action_from_buffer); } ok(rotate_session_action_from_buffer, - "rotate_session action created from payload is non-null"); + "rotate_session action created from payload is non-null"); - ok(lttng_action_is_equal(rotate_session_action, - rotate_session_action_from_buffer), - "Serialized and de-serialized rotate_session action are equal"); + ok(lttng_action_is_equal(rotate_session_action, rotate_session_action_from_buffer), + "Serialized and de-serialized rotate_session action are equal"); lttng_rate_policy_destroy(default_policy); lttng_rate_policy_destroy(policy); @@ -214,13 +275,13 @@ static void test_action_rotate_session(void) lttng_payload_reset(&payload); } -static void test_action_start_session(void) +static void test_action_start_session() { int ret; enum lttng_action_status status; - struct lttng_action *start_session_action = NULL, - *start_session_action_from_buffer = NULL; - struct lttng_rate_policy *policy = NULL, *default_policy; + struct lttng_action *start_session_action = nullptr, + *start_session_action_from_buffer = nullptr; + struct lttng_rate_policy *policy = nullptr, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -236,62 +297,50 @@ static void test_action_start_session(void) start_session_action = lttng_action_start_session_create(); ok(start_session_action, "Create start_session action"); - ok(lttng_action_get_type(start_session_action) == - LTTNG_ACTION_TYPE_START_SESSION, - "Action has type LTTNG_ACTION_TYPE_START_SESSION"); + ok(lttng_action_get_type(start_session_action) == LTTNG_ACTION_TYPE_START_SESSION, + "Action has type LTTNG_ACTION_TYPE_START_SESSION"); /* Session name setter. */ - status = lttng_action_start_session_set_session_name(NULL, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,NULL) expect invalid"); - status = lttng_action_start_session_set_session_name( - start_session_action, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (object,NULL) expect invalid"); - status = lttng_action_start_session_set_session_name( - NULL, session_name); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,object) expect invalid"); + status = lttng_action_start_session_set_session_name(nullptr, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,NULL) expect invalid"); + status = lttng_action_start_session_set_session_name(start_session_action, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (object,NULL) expect invalid"); + status = lttng_action_start_session_set_session_name(nullptr, session_name); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,object) expect invalid"); /* Set the session name */ - status = lttng_action_start_session_set_session_name( - start_session_action, session_name); + status = lttng_action_start_session_set_session_name(start_session_action, session_name); ok(status == LTTNG_ACTION_STATUS_OK, "Set session name"); - status = lttng_action_start_session_get_session_name( - start_session_action, &get_session_name); - ok(status == LTTNG_ACTION_STATUS_OK && - !strcmp(session_name, get_session_name), - "Get session name, expected `%s` got `%s`", - session_name, get_session_name); + status = lttng_action_start_session_get_session_name(start_session_action, + &get_session_name); + ok(status == LTTNG_ACTION_STATUS_OK && !strcmp(session_name, get_session_name), + "Get session name, expected `%s` got `%s`", + session_name, + get_session_name); /* Validate the default policy for a start_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_start_session_get_rate_policy( - start_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_start_session_get_rate_policy(start_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - default_policy, - cur_policy), - "Default policy is every n=1"); + lttng_rate_policy_is_equal(default_policy, cur_policy), + "Default policy is every n=1"); } /* Set a custom policy. */ - status = lttng_action_start_session_set_rate_policy( - start_session_action, policy); + status = lttng_action_start_session_set_rate_policy(start_session_action, policy); ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a start_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_start_session_get_rate_policy( - start_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_start_session_get_rate_policy(start_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - policy, - cur_policy), - "start_session action policy get"); + lttng_rate_policy_is_equal(policy, cur_policy), + "start_session action policy get"); } /* Ser/des tests. */ @@ -299,18 +348,14 @@ static void test_action_start_session(void) ok(ret == 0, "Action start_session serialized"); { - struct lttng_payload_view view = - lttng_payload_view_from_payload( - &payload, 0, -1); - (void) lttng_action_create_from_payload( - &view, &start_session_action_from_buffer); + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, &start_session_action_from_buffer); } ok(start_session_action_from_buffer, - "start_session action created from payload is non-null"); + "start_session action created from payload is non-null"); - ok(lttng_action_is_equal(start_session_action, - start_session_action_from_buffer), - "Serialized and de-serialized start_session action are equal"); + ok(lttng_action_is_equal(start_session_action, start_session_action_from_buffer), + "Serialized and de-serialized start_session action are equal"); lttng_rate_policy_destroy(default_policy); lttng_rate_policy_destroy(policy); @@ -319,13 +364,13 @@ static void test_action_start_session(void) lttng_payload_reset(&payload); } -static void test_action_stop_session(void) +static void test_action_stop_session() { int ret; enum lttng_action_status status; - struct lttng_action *stop_session_action = NULL, - *stop_session_action_from_buffer = NULL; - struct lttng_rate_policy *policy = NULL, *default_policy; + struct lttng_action *stop_session_action = nullptr, + *stop_session_action_from_buffer = nullptr; + struct lttng_rate_policy *policy = nullptr, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -341,61 +386,49 @@ static void test_action_stop_session(void) stop_session_action = lttng_action_stop_session_create(); ok(stop_session_action, "Create stop_session action"); - ok(lttng_action_get_type(stop_session_action) == - LTTNG_ACTION_TYPE_STOP_SESSION, - "Action has type LTTNG_ACTION_TYPE_STOP_SESSION"); + ok(lttng_action_get_type(stop_session_action) == LTTNG_ACTION_TYPE_STOP_SESSION, + "Action has type LTTNG_ACTION_TYPE_STOP_SESSION"); /* Session name setter. */ - status = lttng_action_stop_session_set_session_name(NULL, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,NULL) expect invalid"); - status = lttng_action_stop_session_set_session_name( - stop_session_action, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (object,NULL) expect invalid"); - status = lttng_action_stop_session_set_session_name(NULL, session_name); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,object) expect invalid"); + status = lttng_action_stop_session_set_session_name(nullptr, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,NULL) expect invalid"); + status = lttng_action_stop_session_set_session_name(stop_session_action, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (object,NULL) expect invalid"); + status = lttng_action_stop_session_set_session_name(nullptr, session_name); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,object) expect invalid"); /* Set the session name */ - status = lttng_action_stop_session_set_session_name( - stop_session_action, session_name); + status = lttng_action_stop_session_set_session_name(stop_session_action, session_name); ok(status == LTTNG_ACTION_STATUS_OK, "Set session name"); - status = lttng_action_stop_session_get_session_name( - stop_session_action, &get_session_name); - ok(status == LTTNG_ACTION_STATUS_OK && - !strcmp(session_name, get_session_name), - "Get session name, expected `%s` got `%s`", - session_name, get_session_name); + status = lttng_action_stop_session_get_session_name(stop_session_action, &get_session_name); + ok(status == LTTNG_ACTION_STATUS_OK && !strcmp(session_name, get_session_name), + "Get session name, expected `%s` got `%s`", + session_name, + get_session_name); /* Validate the default policy for a stop_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_stop_session_get_rate_policy( - stop_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = + lttng_action_stop_session_get_rate_policy(stop_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - default_policy, - cur_policy), - "Default policy is every n=1"); + lttng_rate_policy_is_equal(default_policy, cur_policy), + "Default policy is every n=1"); } /* Set a custom policy. */ - status = lttng_action_stop_session_set_rate_policy( - stop_session_action, policy); + status = lttng_action_stop_session_set_rate_policy(stop_session_action, policy); ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a stop_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_stop_session_get_rate_policy( - stop_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = + lttng_action_stop_session_get_rate_policy(stop_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - policy, - cur_policy), - "stop_session action policy get"); + lttng_rate_policy_is_equal(policy, cur_policy), + "stop_session action policy get"); } /* Ser/des tests. */ @@ -403,18 +436,13 @@ static void test_action_stop_session(void) ok(ret == 0, "Action stop_session serialized"); { - struct lttng_payload_view view = - lttng_payload_view_from_payload( - &payload, 0, -1); - (void) lttng_action_create_from_payload( - &view, &stop_session_action_from_buffer); + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, &stop_session_action_from_buffer); } - ok(stop_session_action_from_buffer, - "stop_session action created from payload is non-null"); + ok(stop_session_action_from_buffer, "stop_session action created from payload is non-null"); - ok(lttng_action_is_equal(stop_session_action, - stop_session_action_from_buffer), - "Serialized and de-serialized stop_session action are equal"); + ok(lttng_action_is_equal(stop_session_action, stop_session_action_from_buffer), + "Serialized and de-serialized stop_session action are equal"); lttng_rate_policy_destroy(default_policy); lttng_rate_policy_destroy(policy); @@ -423,13 +451,13 @@ static void test_action_stop_session(void) lttng_payload_reset(&payload); } -static void test_action_snapshot_session(void) +static void test_action_snapshot_session() { int ret; enum lttng_action_status status; - struct lttng_action *snapshot_session_action = NULL, - *snapshot_session_action_from_buffer = NULL; - struct lttng_rate_policy *policy = NULL, *default_policy; + struct lttng_action *snapshot_session_action = nullptr, + *snapshot_session_action_from_buffer = nullptr; + struct lttng_rate_policy *policy = nullptr, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -445,62 +473,51 @@ static void test_action_snapshot_session(void) snapshot_session_action = lttng_action_snapshot_session_create(); ok(snapshot_session_action, "Create snapshot_session action"); - ok(lttng_action_get_type(snapshot_session_action) == - LTTNG_ACTION_TYPE_SNAPSHOT_SESSION, - "Action has type LTTNG_ACTION_TYPE_SNAPSHOT_SESSION"); + ok(lttng_action_get_type(snapshot_session_action) == LTTNG_ACTION_TYPE_SNAPSHOT_SESSION, + "Action has type LTTNG_ACTION_TYPE_SNAPSHOT_SESSION"); /* Session name setter. */ - status = lttng_action_snapshot_session_set_session_name(NULL, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,NULL) expect invalid"); - status = lttng_action_snapshot_session_set_session_name( - snapshot_session_action, NULL); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (object,NULL) expect invalid"); - status = lttng_action_snapshot_session_set_session_name( - NULL, session_name); - ok(status == LTTNG_ACTION_STATUS_INVALID, - "Set session name (NULL,object) expect invalid"); + status = lttng_action_snapshot_session_set_session_name(nullptr, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,NULL) expect invalid"); + status = lttng_action_snapshot_session_set_session_name(snapshot_session_action, nullptr); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (object,NULL) expect invalid"); + status = lttng_action_snapshot_session_set_session_name(nullptr, session_name); + ok(status == LTTNG_ACTION_STATUS_INVALID, "Set session name (NULL,object) expect invalid"); /* Set the session name */ - status = lttng_action_snapshot_session_set_session_name( - snapshot_session_action, session_name); + status = lttng_action_snapshot_session_set_session_name(snapshot_session_action, + session_name); ok(status == LTTNG_ACTION_STATUS_OK, "Set session name"); - status = lttng_action_snapshot_session_get_session_name( - snapshot_session_action, &get_session_name); - ok(status == LTTNG_ACTION_STATUS_OK && - !strcmp(session_name, get_session_name), - "Get session name, expected `%s` got `%s`", - session_name, get_session_name); + status = lttng_action_snapshot_session_get_session_name(snapshot_session_action, + &get_session_name); + ok(status == LTTNG_ACTION_STATUS_OK && !strcmp(session_name, get_session_name), + "Get session name, expected `%s` got `%s`", + session_name, + get_session_name); /* Validate the default policy for a snapshot_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_snapshot_session_get_rate_policy( - snapshot_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_snapshot_session_get_rate_policy(snapshot_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - default_policy, - cur_policy), - "Default policy is every n=1"); + lttng_rate_policy_is_equal(default_policy, cur_policy), + "Default policy is every n=1"); } /* Set a custom policy. */ - status = lttng_action_snapshot_session_set_rate_policy( - snapshot_session_action, policy); + status = lttng_action_snapshot_session_set_rate_policy(snapshot_session_action, policy); ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a snapshot_session action. */ { - const struct lttng_rate_policy *cur_policy = NULL; - status = lttng_action_snapshot_session_get_rate_policy( - snapshot_session_action, &cur_policy); + const struct lttng_rate_policy *cur_policy = nullptr; + status = lttng_action_snapshot_session_get_rate_policy(snapshot_session_action, + &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_rate_policy_is_equal( - policy, - cur_policy), - "snapshot_session action policy get"); + lttng_rate_policy_is_equal(policy, cur_policy), + "snapshot_session action policy get"); } /* Ser/des tests. */ @@ -508,18 +525,15 @@ static void test_action_snapshot_session(void) ok(ret == 0, "Action snapshot_session serialized"); { - struct lttng_payload_view view = - lttng_payload_view_from_payload( - &payload, 0, -1); - (void) lttng_action_create_from_payload( - &view, &snapshot_session_action_from_buffer); + struct lttng_payload_view view = lttng_payload_view_from_payload(&payload, 0, -1); + (void) lttng_action_create_from_payload(&view, + &snapshot_session_action_from_buffer); } ok(snapshot_session_action_from_buffer, - "snapshot_session action created from payload is non-null"); + "snapshot_session action created from payload is non-null"); - ok(lttng_action_is_equal(snapshot_session_action, - snapshot_session_action_from_buffer), - "Serialized and de-serialized snapshot_session action are equal"); + ok(lttng_action_is_equal(snapshot_session_action, snapshot_session_action_from_buffer), + "Serialized and de-serialized snapshot_session action are equal"); lttng_rate_policy_destroy(default_policy); lttng_rate_policy_destroy(policy); @@ -528,13 +542,24 @@ static void test_action_snapshot_session(void) lttng_payload_reset(&payload); } -int main(void) +static int _main() { plan_tests(NUM_TESTS); test_action_notify(); + test_action_list(); test_action_rotate_session(); test_action_start_session(); test_action_stop_session(); test_action_snapshot_session(); return exit_status(); } + +int main() +{ + try { + return _main(); + } catch (const std::exception& e) { + ERR_FMT("Unhandled exception caught by action unit test: {}", e.what()); + abort(); + } +}