summaryrefslogtreecommitdiff
path: root/test/test_maatframe.cpp
diff options
context:
space:
mode:
authorliuwentan <[email protected]>2022-12-27 18:12:05 +0800
committerliuwentan <[email protected]>2022-12-27 18:12:05 +0800
commit9c4741d0c189278ea5c98406f8769e5d3a09f96f (patch)
tree43e201bda1819b81c42196b0a26dc2bcf58c69a5 /test/test_maatframe.cpp
parentaf3058e9eb9c015c8cb829f26a91c6afa3fe1a61 (diff)
fix flagScan multiHit bugv3.6.19
Diffstat (limited to 'test/test_maatframe.cpp')
-rw-r--r--test/test_maatframe.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp
index fb4d3ab..27a631a 100644
--- a/test/test_maatframe.cpp
+++ b/test/test_maatframe.cpp
@@ -159,14 +159,14 @@ TEST(FlagScan, basic)
ASSERT_GT(table_id, 0);
//compile_id:192 flag: 0000 0001 mask: 0000 0011
- //scan_data: 0000 0001 or 0000 0101 should hit
- uint64_t scan_data=1;
+ //scan_data: 0000 1001 or 0000 1101 should hit
+ uint64_t scan_data=9;
ret=Maat_scan_flag(g_feather, table_id, scan_data, result, 4, &mid, 0);
EXPECT_EQ(ret, 1);
EXPECT_EQ(result[0].config_id, 192);
Maat_clean_status(&mid);
- scan_data=5;
+ scan_data=13;
ret=Maat_scan_flag(g_feather, table_id, scan_data, result, 4, &mid, 0);
EXPECT_EQ(ret, 1);
EXPECT_EQ(result[0].config_id, 192);
@@ -208,6 +208,29 @@ TEST(FlagScan, withExprRegion)
Maat_clean_status(&mid);
}
+TEST(FlagScan, hitMultiCompile)
+{
+ int ret=0;
+ int flag_table_id=0;
+ struct Maat_rule_t result[4];
+ int found_pos[4];
+ const char* flag_table_name="FLAG_CONFIG";
+ scan_status_t mid=NULL;
+
+ flag_table_id=Maat_table_register(g_feather,flag_table_name);
+ ASSERT_GT(flag_table_id, 0);
+
+ //compile_id:192 flag: 0000 0001 mask: 0000 0011
+ //compile_id:194 flag: 0001 0101 mask: 0001 1111
+ //scan_data: 0001 0101 should hit compile192 and compile194
+ uint64_t flag_scan_data=21;
+ ret=Maat_scan_flag(g_feather, flag_table_id, flag_scan_data, result, 4, &mid, 0);
+ EXPECT_EQ(ret, 2);
+ EXPECT_EQ(result[0].config_id, 194);
+ EXPECT_EQ(result[1].config_id, 192);
+ Maat_clean_status(&mid);
+}
+
TEST_F(JSONUpdate, OldCfg)
{
scan_with_old_or_new_cfg(JSONUpdate::_shared_feather_j, 1);