add api maat_state_sort_rules to sort rule_uuid by order: 1.priority 2.condition_num 3.uuid

This commit is contained in:
liuchang
2024-11-26 06:33:14 +00:00
parent 57149b3060
commit 1c36e1cb21
8 changed files with 119 additions and 12 deletions

View File

@@ -950,9 +950,9 @@ TEST_P(StringScan, PrefixAndSuffix) {
EXPECT_EQ(n_hit_result, 2);
char uuid_str[UUID_STR_LEN] = {0};
uuid_unparse(results[0], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000151");
uuid_unparse(results[1], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000152");
uuid_unparse(results[1], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000151");
ret = maat_scan_not_logic(maat_inst, mail_addr_table_name, mail_addr_field_name, results, ARRAY_SIZE,
&n_hit_result, state);
@@ -5278,14 +5278,14 @@ TEST_F(Policy, EvaluationOrder) {
EXPECT_EQ(n_hit_result, 3);
char uuid_str[UUID_STR_LEN] = {0};
uuid_unparse(results[0], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000166");
uuid_unparse(results[1], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000168");
uuid_unparse(results[2], uuid_str);
uuid_unparse(results[1], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000167");
uuid_unparse(results[2], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000166");
struct maat_hit_path hit_path[128];
memset(hit_path, 0, sizeof(hit_path));
size_t n_hit_path = maat_state_get_hit_paths(state, hit_path, 128);
@@ -5369,6 +5369,23 @@ TEST_F(Policy, EvaluationOrder) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
uuid_parse("00000000-0000-0000-0000-000000000166", results[0]);
uuid_parse("00000000-0000-0000-0000-000000000168", results[1]);
uuid_parse("00000000-0000-0000-0000-000000000167", results[2]);
uuid_parse("00000000-0000-0000-0000-000000000165", results[3]);
uuid_t sorted_results[4];
ret = maat_state_sort_rules(maat_inst, "RULE_CONJUNCTION", results, sorted_results, 4);
EXPECT_EQ(ret, 4);
uuid_unparse(sorted_results[0], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000165");
uuid_unparse(sorted_results[1], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000168");
uuid_unparse(sorted_results[2], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000167");
uuid_unparse(sorted_results[3], uuid_str);
EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000166");
maat_state_free(state);
}