summaryrefslogtreecommitdiff
path: root/shaping/test/gtest_shaper_maat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shaping/test/gtest_shaper_maat.cpp')
-rw-r--r--shaping/test/gtest_shaper_maat.cpp320
1 files changed, 215 insertions, 105 deletions
diff --git a/shaping/test/gtest_shaper_maat.cpp b/shaping/test/gtest_shaper_maat.cpp
index 3b619fc..59381ce 100644
--- a/shaping/test/gtest_shaper_maat.cpp
+++ b/shaping/test/gtest_shaper_maat.cpp
@@ -7,27 +7,46 @@
TEST(shaping_rule, parse)
{
- const char *data = "182\t\
- 2\t\
- 32\t\
- 0\t\
- 1\t\
- {}\t\
- {\"vsys_id\":2333,\"priority\":1,\"fair_factor\":10,\"dscp_marking\":{\"enabled\":1,\"dscp_value\":10},\"profile_chain\":[1,2,3]}\t\
- 0\t\
- 1\t\
- }";
+ const char *data = "{\
+ \"uuid\": \"00000000-0000-0000-0000-000000000182\",\
+ \"service\": 2,\
+ \"action\": 32,\
+ \"do_blacklist\": 0,\
+ \"do_log\": 1,\
+ \"effective_rage\": 0,\
+ \"action_parameter\": {\
+ \"vsys_id\": 2333,\
+ \"priority\": 1,\
+ \"fair_factor\": 10,\
+ \"dscp_marking\": {\
+ \"enabled\": 1,\
+ \"dscp_type\": \"Assured Forwarding (AF)\",\
+ \"dscp_name\": \"af11\",\
+ \"dscp_value\": 10\
+ },\
+ \"profile_chain\": [\
+ \"00000000-0000-0000-0000-000000000001\",\
+ \"00000000-0000-0000-0000-000000000002\",\
+ \"00000000-0000-0000-0000-000000000003\"\
+ ]\
+ }\
+ }";
struct shaping_rule *s_rule = NULL;
struct shaping_rule *s_rule_dup = NULL;
- shaper_rule_ex_new("TRAFFIC_SHAPING_COMPILE", 0, NULL, data, (void**)&s_rule, 0, NULL);
+ shaper_rule_ex_new("TRAFFIC_SHAPING_RULE", NULL, data, (void**)&s_rule, 0, NULL);
EXPECT_EQ(s_rule->vsys_id, 2333);
- EXPECT_EQ(s_rule->id, 182);
- EXPECT_EQ(s_rule->primary_pf_id, 1);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(s_rule->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000182", uuid_str);
+ uuid_unparse(s_rule->primary_pf_uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(s_rule->borrow_pf_num, 2);
- EXPECT_EQ(s_rule->borrow_pf_id_array[0], 2);
- EXPECT_EQ(s_rule->borrow_pf_id_array[1], 3);
+ uuid_unparse(s_rule->borrow_pf_uuid_array[0], uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
+ uuid_unparse(s_rule->borrow_pf_uuid_array[1], uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
EXPECT_EQ(s_rule->priority, 1);
EXPECT_EQ(s_rule->dscp_enable, 1);
EXPECT_EQ(s_rule->dscp_value, 10);
@@ -40,18 +59,24 @@ TEST(shaping_rule, parse)
}
TEST(shaping_profile, parse)
-{ const char *data = "1\t\
- fair_share\t\
- max_min_host_fairness\t\
- [{\"direction\":\"incoming\",\"bandwidth\":1024},{\"direction\":\"outgoing\",\"bandwidth\":2048}]\t\
- {\"algorithm\":\"codel\"}\t\
- {}\t\
- 1";
+{
+ const char *data = "{\
+ \"uuid\":\"00000000-0000-0000-0000-000000000001\",\
+ \"type\": \"fair_share\",\
+ \"type_argument\": \"max_min_host_fairness\",\
+ \"limits\": [\
+ {\"direction\":\"incoming\",\"bandwidth\":1024},\
+ {\"direction\":\"outcoming\",\"bandwidth\":2048}\
+ ],\
+ \"aqm_options\": {\"algorithm\":\"codel\"},\
+ \"is_valid\":\"yes\"}";
struct shaping_profile *s_pf = NULL;
struct shaping_profile *s_pf_dup = NULL;
- shaper_profile_ex_new("TRAFFIC_SHAPING_PROFILE", 0, NULL, data, (void**)&s_pf, 0, NULL);
- EXPECT_EQ(s_pf->id, 1);
+ shaper_profile_ex_new("TRAFFIC_SHAPING_PROFILE", NULL, data, (void**)&s_pf, 0, NULL);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(s_pf->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(s_pf->in_limit_bandwidth, 1024);
EXPECT_EQ(s_pf->out_limit_bandwidth, 2048);
EXPECT_EQ(s_pf->type, PROFILE_TYPE_MAX_MIN_HOST_FAIRNESS);
@@ -69,51 +94,71 @@ TEST(shaping_flow, update_rule)
struct shaping_ctx *ctx = NULL;
struct shaping_flow sf;
struct shaping_rule_info *rule_info;
- long long rule_ids[] = {1, 2, 3};
+ const char *rule_uuid_strs[] = {"00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003"};
int prioritys[] = {1, 2, 3};
int profile_nums[] = {1, 2, 3};
- int profile_ids[][MAX_REF_PROFILE] = {{1}, {2, 3}, {4, 5, 6}};
+ const char *profile_uuid_strs[][MAX_REF_PROFILE] = {{"00000000-0000-0000-0000-000000000001"},
+ {"00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003"},
+ {"00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006"}};
stub_init();
ctx = shaping_engine_init();
- stub_set_matched_shaping_rules(3, rule_ids, prioritys, profile_nums, profile_ids);
-
- ctx->maat_info->rule_table_id = STUB_MAAT_SHAPING_RULE_TABLE_ID;
- ctx->maat_info->profile_table_id = STUB_MAAT_SHAPING_PROFILE_TABLE_ID;
+ stub_set_matched_shaping_rules(3, rule_uuid_strs, prioritys, profile_nums, profile_uuid_strs);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000001", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000002", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000003", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000004", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000005", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000006", PROFILE_TYPE_GENERIC);
memset(&sf, 0, sizeof(sf));
sf.priority = SHAPING_PRIORITY_NUM_MAX;
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_ids, 3);
+ uuid_t rule_uuids[3];
+ uuid_parse("00000000-0000-0000-0000-000000000001", rule_uuids[0]);
+ uuid_parse("00000000-0000-0000-0000-000000000002", rule_uuids[1]);
+ uuid_parse("00000000-0000-0000-0000-000000000003", rule_uuids[2]);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_uuids, 3);
EXPECT_EQ(sf.rule_num, 3);
rule_info = &sf.matched_rule_infos[0];
- EXPECT_EQ(rule_info->id, 1);
- EXPECT_EQ(rule_info->primary.id, 1);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
rule_info = &sf.matched_rule_infos[1];
- EXPECT_EQ(rule_info->id, 2);
- EXPECT_EQ(rule_info->primary.id, 2);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 1);
- EXPECT_EQ(rule_info->borrowing[0].id, 3);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 2);
rule_info = &sf.matched_rule_infos[2];
- EXPECT_EQ(rule_info->id, 3);
- EXPECT_EQ(rule_info->primary.id, 4);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 2);
- EXPECT_EQ(rule_info->borrowing[0].id, 5);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000005", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 2);
- EXPECT_EQ(rule_info->borrowing[1].id, 6);
+ uuid_unparse(rule_info->borrowing[1].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000006", uuid_str);
EXPECT_EQ(rule_info->borrowing[1].priority, 3);
shaping_engine_destroy(ctx);
+ stub_clear_resource();
}
TEST(shaping_flow, update_rule_dup)
@@ -121,65 +166,92 @@ TEST(shaping_flow, update_rule_dup)
struct shaping_ctx *ctx = NULL;
struct shaping_flow sf;
struct shaping_rule_info *rule_info;
- long long rule_ids[] = {1, 2, 3, 4};
+ const char *rule_uuid_strs[] = {"00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004"};
int prioritys[] = {1, 2, 3, 4};
int profile_nums[] = {1, 2, 3, 1};
- int profile_ids[][MAX_REF_PROFILE] = {{1}, {2, 3}, {4, 5, 6}, {7}};
+ const char *profile_uuid_strs[][MAX_REF_PROFILE] = {{"00000000-0000-0000-0000-000000000001"},
+ {"00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003"},
+ {"00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006"},
+ {"00000000-0000-0000-0000-000000000007"}};
stub_init();
ctx = shaping_engine_init();
- stub_set_matched_shaping_rules(4, rule_ids, prioritys, profile_nums, profile_ids);
-
- ctx->maat_info->rule_table_id = STUB_MAAT_SHAPING_RULE_TABLE_ID;
- ctx->maat_info->profile_table_id = STUB_MAAT_SHAPING_PROFILE_TABLE_ID;
+ stub_set_matched_shaping_rules(4, rule_uuid_strs, prioritys, profile_nums, profile_uuid_strs);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000001", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000002", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000003", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000004", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000005", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000006", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000007", PROFILE_TYPE_GENERIC);
memset(&sf, 0, sizeof(sf));
sf.priority = SHAPING_PRIORITY_NUM_MAX;
- long long rule_id1[] = {1, 2, 3};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id1, 3);
+ uuid_t rule_uuid1[3];
+ uuid_parse("00000000-0000-0000-0000-000000000001", rule_uuid1[0]);
+ uuid_parse("00000000-0000-0000-0000-000000000002", rule_uuid1[1]);
+ uuid_parse("00000000-0000-0000-0000-000000000003", rule_uuid1[2]);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_uuid1, 3);
EXPECT_EQ(sf.rule_num, 3);
rule_info = &sf.matched_rule_infos[0];
- EXPECT_EQ(rule_info->id, 1);
- EXPECT_EQ(rule_info->primary.id, 1);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
rule_info = &sf.matched_rule_infos[1];
- EXPECT_EQ(rule_info->id, 2);
- EXPECT_EQ(rule_info->primary.id, 2);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 1);
- EXPECT_EQ(rule_info->borrowing[0].id, 3);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 2);
rule_info = &sf.matched_rule_infos[2];
- EXPECT_EQ(rule_info->id, 3);
- EXPECT_EQ(rule_info->primary.id, 4);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 2);
- EXPECT_EQ(rule_info->borrowing[0].id, 5);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000005", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 2);
- EXPECT_EQ(rule_info->borrowing[1].id, 6);
+ uuid_unparse(rule_info->borrowing[1].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000006", uuid_str);
EXPECT_EQ(rule_info->borrowing[1].priority, 3);
- long long rule_id2[] = {1};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id2, 1);
+ uuid_t rule_uuid2;
+ uuid_parse("00000000-0000-0000-0000-000000000001", rule_uuid2);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, &rule_uuid2, 1);
EXPECT_EQ(sf.rule_num, 3);
- long long rule_id3[] = {2, 3, 4};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id3, 3);
+ uuid_t rule_uuid3[3];
+ uuid_parse("00000000-0000-0000-0000-000000000002", rule_uuid3[0]);
+ uuid_parse("00000000-0000-0000-0000-000000000003", rule_uuid3[1]);
+ uuid_parse("00000000-0000-0000-0000-000000000004", rule_uuid3[2]);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_uuid3, 3);
EXPECT_EQ(sf.rule_num, 4);
rule_info = &sf.matched_rule_infos[3];
- EXPECT_EQ(rule_info->id, 4);
- EXPECT_EQ(rule_info->primary.id, 7);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000007", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
shaping_engine_destroy(ctx);
+ stub_clear_resource();
}
TEST(shaping_flow, update_rule_after_priority_confirmed)
@@ -187,57 +259,76 @@ TEST(shaping_flow, update_rule_after_priority_confirmed)
struct shaping_ctx *ctx = NULL;
struct shaping_flow sf;
struct shaping_rule_info *rule_info;
- long long rule_ids[] = {1, 2, 3};
+ const char *rule_uuid_strs[] = {"00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003"};
int prioritys[] = {1, 2, 3};
int profile_nums[] = {1, 2, 3};
- int profile_ids[][MAX_REF_PROFILE] = {{1}, {2, 3}, {4, 5, 6}};
+ const char *profile_uuid_strs[][MAX_REF_PROFILE] = {{"00000000-0000-0000-0000-000000000001"},
+ {"00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003"},
+ {"00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006"}};
stub_init();
ctx = shaping_engine_init();
- stub_set_matched_shaping_rules(3, rule_ids, prioritys, profile_nums, profile_ids);
-
- ctx->maat_info->rule_table_id = STUB_MAAT_SHAPING_RULE_TABLE_ID;
- ctx->maat_info->profile_table_id = STUB_MAAT_SHAPING_PROFILE_TABLE_ID;
+ stub_set_matched_shaping_rules(3, rule_uuid_strs, prioritys, profile_nums, profile_uuid_strs);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000001", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000002", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000003", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000004", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000005", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000006", PROFILE_TYPE_GENERIC);
memset(&sf, 0, sizeof(sf));
sf.priority = SHAPING_PRIORITY_NUM_MAX;
- long long first_rule_ids[] = {2, 3};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, first_rule_ids, 2);
+ uuid_t first_rule_uuids[2];
+ uuid_parse("00000000-0000-0000-0000-000000000002", first_rule_uuids[0]);
+ uuid_parse("00000000-0000-0000-0000-000000000003", first_rule_uuids[1]);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, first_rule_uuids, 2);
sf.processed_pkts = CONFIRM_PRIORITY_PKTS + 1;
- long long after_confirm_priority_rule_ids[] = {1};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, after_confirm_priority_rule_ids, 1);
+ uuid_t after_confirm_priority_rule_uuids;
+ uuid_parse("00000000-0000-0000-0000-000000000001", after_confirm_priority_rule_uuids);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, &after_confirm_priority_rule_uuids, 1);
EXPECT_EQ(sf.rule_num, 3);
EXPECT_EQ(sf.priority, 2);
rule_info = &sf.matched_rule_infos[0];
- EXPECT_EQ(rule_info->id, 2);
- EXPECT_EQ(rule_info->primary.id, 2);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 2);
EXPECT_EQ(rule_info->borrowing_num, 1);
- EXPECT_EQ(rule_info->borrowing[0].id, 3);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 3);
rule_info = &sf.matched_rule_infos[1];
- EXPECT_EQ(rule_info->id, 3);
- EXPECT_EQ(rule_info->primary.id, 4);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 2);
EXPECT_EQ(rule_info->borrowing_num, 2);
- EXPECT_EQ(rule_info->borrowing[0].id, 5);
+ uuid_unparse(rule_info->borrowing[0].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000005", uuid_str);
EXPECT_EQ(rule_info->borrowing[0].priority, 3);
- EXPECT_EQ(rule_info->borrowing[1].id, 6);
+ uuid_unparse(rule_info->borrowing[1].uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000006", uuid_str);
EXPECT_EQ(rule_info->borrowing[1].priority, 4);
rule_info = &sf.matched_rule_infos[2];
- EXPECT_EQ(rule_info->id, 1);
- EXPECT_EQ(rule_info->primary.id, 1);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 2);
EXPECT_EQ(rule_info->borrowing_num, 0);
shaping_engine_destroy(ctx);
+ stub_clear_resource();
}
TEST(shaping_flow, update_rule_dscp)
@@ -245,71 +336,90 @@ TEST(shaping_flow, update_rule_dscp)
struct shaping_ctx *ctx = NULL;
struct shaping_flow sf;
struct shaping_rule_info *rule_info;
- long long rule_ids[] = {1, 2, 3, 4};
+ const char *rule_uuid_strs[] = {"00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004"};
int prioritys[] = {1, 2, 3, 4};
int profile_nums[] = {1, 1, 1, 1};
- int profile_ids[][MAX_REF_PROFILE] = {{1}, {2}, {3}, {4}};
+ const char *profile_uuid_strs[][MAX_REF_PROFILE] = {{"00000000-0000-0000-0000-000000000001"},
+ {"00000000-0000-0000-0000-000000000002"},
+ {"00000000-0000-0000-0000-000000000003"},
+ {"00000000-0000-0000-0000-000000000004"}};
stub_init();
ctx = shaping_engine_init();
- stub_set_matched_shaping_rules(4, rule_ids, prioritys, profile_nums, profile_ids);
- stub_set_shaping_rule_dscp_value(1, 10);//AF11
- stub_set_shaping_rule_dscp_value(2, 12);//AF12
- stub_set_shaping_rule_dscp_value(3, 14);//AF13
- stub_set_shaping_rule_dscp_value(4, 40);//CS5
+ stub_set_matched_shaping_rules(4, rule_uuid_strs, prioritys, profile_nums, profile_uuid_strs);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000001", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000002", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000003", PROFILE_TYPE_GENERIC);
+ stub_set_profile_type("00000000-0000-0000-0000-000000000004", PROFILE_TYPE_GENERIC);
- ctx->maat_info->rule_table_id = STUB_MAAT_SHAPING_RULE_TABLE_ID;
- ctx->maat_info->profile_table_id = STUB_MAAT_SHAPING_PROFILE_TABLE_ID;
+ stub_set_shaping_rule_dscp_value(rule_uuid_strs[0], 10);//AF11
+ stub_set_shaping_rule_dscp_value(rule_uuid_strs[1], 12);//AF12
+ stub_set_shaping_rule_dscp_value(rule_uuid_strs[2], 14);//AF13
+ stub_set_shaping_rule_dscp_value(rule_uuid_strs[3], 40);//CS5
memset(&sf, 0, sizeof(sf));
sf.priority = SHAPING_PRIORITY_NUM_MAX;
- long long rule_id1[] = {1, 2};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id1, 2);
+ uuid_t rule_uuids1[2];
+ uuid_parse("00000000-0000-0000-0000-000000000001", rule_uuids1[0]);
+ uuid_parse("00000000-0000-0000-0000-000000000002", rule_uuids1[1]);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_uuids1, 2);
EXPECT_EQ(sf.rule_num, 2);
EXPECT_EQ(sf.dscp_enable, 1);
EXPECT_EQ(sf.dscp_value, 10);
rule_info = &sf.matched_rule_infos[0];
- EXPECT_EQ(rule_info->id, 1);
- EXPECT_EQ(rule_info->primary.id, 1);
+ char uuid_str[UUID_STR_LEN];
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
rule_info = &sf.matched_rule_infos[1];
- EXPECT_EQ(rule_info->id, 2);
- EXPECT_EQ(rule_info->primary.id, 2);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000002", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
- long long rule_id2[] = {3};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id2, 1);
+ uuid_t rule_uuid2;
+ uuid_parse("00000000-0000-0000-0000-000000000003", rule_uuid2);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, &rule_uuid2, 1);
EXPECT_EQ(sf.rule_num, 3);
EXPECT_EQ(sf.dscp_enable, 1);
EXPECT_EQ(sf.dscp_value, 10);
rule_info = &sf.matched_rule_infos[2];
- EXPECT_EQ(rule_info->id, 3);
- EXPECT_EQ(rule_info->primary.id, 3);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000003", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
- long long rule_id3[] = {4};
- shaper_rules_update(&ctx->thread_ctx[0], &sf, rule_id3, 3);
+ uuid_t rule_uuid3;
+ uuid_parse("00000000-0000-0000-0000-000000000004", rule_uuid3);
+ shaper_rules_update(&ctx->thread_ctx[0], &sf, &rule_uuid3, 1);
EXPECT_EQ(sf.rule_num, 4);
EXPECT_EQ(sf.dscp_enable, 1);
EXPECT_EQ(sf.dscp_value, 40);
rule_info = &sf.matched_rule_infos[3];
- EXPECT_EQ(rule_info->id, 4);
- EXPECT_EQ(rule_info->primary.id, 4);
+ uuid_unparse(rule_info->uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
+ uuid_unparse(rule_info->primary.uuid, uuid_str);
+ EXPECT_STREQ("00000000-0000-0000-0000-000000000004", uuid_str);
EXPECT_EQ(rule_info->primary.priority, 1);
EXPECT_EQ(rule_info->borrowing_num, 0);
shaping_engine_destroy(ctx);
+ stub_clear_resource();
}
int main(int argc, char **argv)