X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Funit%2Ftest_action.c;h=95df311d02e5894df8e990b1830c5afdb8b2cb66;hp=1b4a9f9aeed63d35006f1601c7ba5a68bfc65e4e;hb=7f4d5b07cf7be895b38b69073389a4fcc318ec29;hpb=3474dcb1f4031cbd69fd39eb9a561cce3ddd6d63 diff --git a/tests/unit/test_action.c b/tests/unit/test_action.c index 1b4a9f9ae..95df311d0 100644 --- a/tests/unit/test_action.c +++ b/tests/unit/test_action.c @@ -21,10 +21,11 @@ #include #include #include -#include -#include #include +#include +#include #include +#include #include #include @@ -33,7 +34,7 @@ int lttng_opt_quiet = 1; int lttng_opt_verbose; int lttng_opt_mi; -#define NUM_TESTS 47 +#define NUM_TESTS 60 static void test_action_notify(void) { @@ -41,15 +42,15 @@ static void test_action_notify(void) enum lttng_action_status status; struct lttng_action *notify_action = NULL, *notify_action_from_buffer = NULL; - struct lttng_firing_policy *policy = NULL, *default_policy; + struct lttng_rate_policy *policy = NULL, *default_policy; struct lttng_payload payload; lttng_payload_init(&payload); /* To set. */ - policy = lttng_firing_policy_every_n_create(100); + policy = lttng_rate_policy_every_n_create(100); /* For comparison. */ - default_policy = lttng_firing_policy_every_n_create(1); + default_policy = lttng_rate_policy_every_n_create(1); assert(policy && default_policy); @@ -60,27 +61,27 @@ static void test_action_notify(void) /* Validate the default policy for a notify action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_notify_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_notify_get_rate_policy( notify_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + lttng_rate_policy_is_equal( default_policy, cur_policy), "Default policy is every n=1"); } /* Set a custom policy. */ - status = lttng_action_notify_set_firing_policy(notify_action, policy); - ok(status == LTTNG_ACTION_STATUS_OK, "Set firing policy"); + status = lttng_action_notify_set_rate_policy(notify_action, policy); + ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a notify action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_notify_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_notify_get_rate_policy( notify_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + lttng_rate_policy_is_equal( policy, cur_policy), "Notify action policy get"); @@ -102,8 +103,8 @@ static void test_action_notify(void) ok(lttng_action_is_equal(notify_action, notify_action_from_buffer), "Serialized and de-serialized notify action are equal"); - lttng_firing_policy_destroy(default_policy); - lttng_firing_policy_destroy(policy); + lttng_rate_policy_destroy(default_policy); + lttng_rate_policy_destroy(policy); lttng_action_destroy(notify_action); lttng_action_destroy(notify_action_from_buffer); lttng_payload_reset(&payload); @@ -115,7 +116,7 @@ static void test_action_rotate_session(void) enum lttng_action_status status; struct lttng_action *rotate_session_action = NULL, *rotate_session_action_from_buffer = NULL; - struct lttng_firing_policy *policy = NULL, *default_policy; + struct lttng_rate_policy *policy = NULL, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -123,9 +124,9 @@ static void test_action_rotate_session(void) lttng_payload_init(&payload); /* To set. */ - policy = lttng_firing_policy_every_n_create(100); + policy = lttng_rate_policy_every_n_create(100); /* For comparison. */ - default_policy = lttng_firing_policy_every_n_create(1); + default_policy = lttng_rate_policy_every_n_create(1); assert(policy && default_policy); @@ -162,28 +163,28 @@ static void test_action_rotate_session(void) /* Validate the default policy for a rotate_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_rotate_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_rotate_session_get_rate_policy( rotate_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + 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_firing_policy( + status = lttng_action_rotate_session_set_rate_policy( rotate_session_action, policy); - ok(status == LTTNG_ACTION_STATUS_OK, "Set firing policy"); + ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a rotate_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_rotate_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_rotate_session_get_rate_policy( rotate_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + lttng_rate_policy_is_equal( policy, cur_policy), "rotate_session action policy get"); @@ -207,8 +208,8 @@ static void test_action_rotate_session(void) rotate_session_action_from_buffer), "Serialized and de-serialized rotate_session action are equal"); - lttng_firing_policy_destroy(default_policy); - lttng_firing_policy_destroy(policy); + lttng_rate_policy_destroy(default_policy); + lttng_rate_policy_destroy(policy); lttng_action_destroy(rotate_session_action); lttng_action_destroy(rotate_session_action_from_buffer); lttng_payload_reset(&payload); @@ -220,7 +221,7 @@ static void test_action_start_session(void) enum lttng_action_status status; struct lttng_action *start_session_action = NULL, *start_session_action_from_buffer = NULL; - struct lttng_firing_policy *policy = NULL, *default_policy; + struct lttng_rate_policy *policy = NULL, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -228,9 +229,9 @@ static void test_action_start_session(void) lttng_payload_init(&payload); /* To set. */ - policy = lttng_firing_policy_every_n_create(100); + policy = lttng_rate_policy_every_n_create(100); /* For comparison. */ - default_policy = lttng_firing_policy_every_n_create(1); + default_policy = lttng_rate_policy_every_n_create(1); assert(policy && default_policy); @@ -267,28 +268,28 @@ static void test_action_start_session(void) /* Validate the default policy for a start_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_start_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_start_session_get_rate_policy( start_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + 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_firing_policy( + status = lttng_action_start_session_set_rate_policy( start_session_action, policy); - ok(status == LTTNG_ACTION_STATUS_OK, "Set firing policy"); + ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a start_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_start_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_start_session_get_rate_policy( start_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + lttng_rate_policy_is_equal( policy, cur_policy), "start_session action policy get"); @@ -312,8 +313,8 @@ static void test_action_start_session(void) start_session_action_from_buffer), "Serialized and de-serialized start_session action are equal"); - lttng_firing_policy_destroy(default_policy); - lttng_firing_policy_destroy(policy); + lttng_rate_policy_destroy(default_policy); + lttng_rate_policy_destroy(policy); lttng_action_destroy(start_session_action); lttng_action_destroy(start_session_action_from_buffer); lttng_payload_reset(&payload); @@ -325,7 +326,7 @@ static void test_action_stop_session(void) enum lttng_action_status status; struct lttng_action *stop_session_action = NULL, *stop_session_action_from_buffer = NULL; - struct lttng_firing_policy *policy = NULL, *default_policy; + struct lttng_rate_policy *policy = NULL, *default_policy; struct lttng_payload payload; const char *session_name = "my_session_name"; const char *get_session_name; @@ -333,9 +334,9 @@ static void test_action_stop_session(void) lttng_payload_init(&payload); /* To set. */ - policy = lttng_firing_policy_every_n_create(100); + policy = lttng_rate_policy_every_n_create(100); /* For comparison. */ - default_policy = lttng_firing_policy_every_n_create(1); + default_policy = lttng_rate_policy_every_n_create(1); assert(policy && default_policy); @@ -371,28 +372,28 @@ static void test_action_stop_session(void) /* Validate the default policy for a stop_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_stop_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_stop_session_get_rate_policy( stop_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + 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_firing_policy( + status = lttng_action_stop_session_set_rate_policy( stop_session_action, policy); - ok(status == LTTNG_ACTION_STATUS_OK, "Set firing policy"); + ok(status == LTTNG_ACTION_STATUS_OK, "Set rate policy"); /* Validate the custom policy for a stop_session action. */ { - const struct lttng_firing_policy *cur_policy = NULL; - status = lttng_action_stop_session_get_firing_policy( + const struct lttng_rate_policy *cur_policy = NULL; + status = lttng_action_stop_session_get_rate_policy( stop_session_action, &cur_policy); ok(status == LTTNG_ACTION_STATUS_OK && - lttng_firing_policy_is_equal( + lttng_rate_policy_is_equal( policy, cur_policy), "stop_session action policy get"); @@ -416,13 +417,118 @@ static void test_action_stop_session(void) stop_session_action_from_buffer), "Serialized and de-serialized stop_session action are equal"); - lttng_firing_policy_destroy(default_policy); - lttng_firing_policy_destroy(policy); + lttng_rate_policy_destroy(default_policy); + lttng_rate_policy_destroy(policy); lttng_action_destroy(stop_session_action); lttng_action_destroy(stop_session_action_from_buffer); lttng_payload_reset(&payload); } +static void test_action_snapshot_session(void) +{ + 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_payload payload; + const char *session_name = "my_session_name"; + const char *get_session_name; + + lttng_payload_init(&payload); + + /* To set. */ + policy = lttng_rate_policy_every_n_create(100); + /* For comparison. */ + default_policy = lttng_rate_policy_every_n_create(1); + + assert(policy && default_policy); + + 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"); + + /* 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"); + + /* Set the 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); + + /* 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); + ok(status == LTTNG_ACTION_STATUS_OK && + 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); + 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); + ok(status == LTTNG_ACTION_STATUS_OK && + lttng_rate_policy_is_equal( + policy, + cur_policy), + "snapshot_session action policy get"); + } + + /* Ser/des tests. */ + ret = lttng_action_serialize(snapshot_session_action, &payload); + 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); + } + ok(snapshot_session_action_from_buffer, + "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"); + + lttng_rate_policy_destroy(default_policy); + lttng_rate_policy_destroy(policy); + lttng_action_destroy(snapshot_session_action); + lttng_action_destroy(snapshot_session_action_from_buffer); + lttng_payload_reset(&payload); +} + int main(int argc, const char *argv[]) { plan_tests(NUM_TESTS); @@ -430,5 +536,6 @@ int main(int argc, const char *argv[]) test_action_rotate_session(); test_action_start_session(); test_action_stop_session(); + test_action_snapshot_session(); return exit_status(); }