summaryrefslogtreecommitdiff
path: root/test/test_maatframe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_maatframe.cpp')
-rw-r--r--test/test_maatframe.cpp96
1 files changed, 94 insertions, 2 deletions
diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp
index fda68aa..4edb699 100644
--- a/test/test_maatframe.cpp
+++ b/test/test_maatframe.cpp
@@ -1114,7 +1114,7 @@ TEST(NOTLogic, ScanIrrelavantAtLast)
Maat_clean_status(&mid);
}
-TEST(NOTLogic, ScanHitAtLast)
+TEST(NOTLogic, ScanHitAtLastEmptyExpr)
{
const char* string_should_not_hit="This string should not hit.";
const char* string_match_no_region="This string is matched against a empty table.";
@@ -1134,7 +1134,7 @@ TEST(NOTLogic, ScanHitAtLast)
struct ipaddr ipv4_addr;
struct stream_tuple4_v4 v4_addr;
ipv4_addr.addrtype=ADDR_TYPE_IPV4;
- inet_pton(AF_INET,"10.0.8.18",&(v4_addr.saddr));
+ inet_pton(AF_INET,"10.0.8.186",&(v4_addr.saddr));
v4_addr.source=htons(18611);
inet_pton(AF_INET,"10.0.8.20",&(v4_addr.daddr));
v4_addr.dest=htons(80);
@@ -1161,6 +1161,98 @@ TEST(NOTLogic, ScanHitAtLast)
}
+TEST(NOTLogic, ScanHitAtLastEmptyInteger)
+{
+ const char* string_should_not_hit="This string should not hit.";
+ const char* string_match_no_region="This string is matched against a empty table.";
+ int ret=0;
+ int table_id=0;
+ struct Maat_rule_t result[4];
+ int found_pos[4];
+ const char* not_hit_table_name="HTTP_URL", *hit_table_name1="IP_PLUS_CONFIG", *empty_table_name="EMPTY_INTERGER";
+ scan_status_t mid=NULL;
+ table_id=Maat_table_register(g_feather, not_hit_table_name);
+ ASSERT_GT(table_id, 0);
+
+ ret=Maat_full_scan_string(g_feather, table_id, CHARSET_GBK, string_should_not_hit, strlen(string_should_not_hit),
+ result, found_pos, 4, &mid, 0);
+ EXPECT_GE(ret, 0);
+
+ struct ipaddr ipv4_addr;
+ struct stream_tuple4_v4 v4_addr;
+ ipv4_addr.addrtype=ADDR_TYPE_IPV4;
+ inet_pton(AF_INET,"10.0.8.187",&(v4_addr.saddr));
+ v4_addr.source=htons(18611);
+ inet_pton(AF_INET,"10.0.8.20",&(v4_addr.daddr));
+ v4_addr.dest=htons(80);
+ ipv4_addr.v4=&v4_addr;
+
+ table_id=Maat_table_register(g_feather, hit_table_name1);
+ ASSERT_GT(table_id, 0);
+
+ ret=Maat_scan_proto_addr(g_feather, table_id, &ipv4_addr, 6, result, 4, &mid,0);
+
+
+ EXPECT_EQ(ret, -2);
+
+ table_id=Maat_table_register(g_feather, empty_table_name);
+ ASSERT_GT(table_id, 0);
+
+ Maat_set_scan_status(g_feather, &mid, MAAT_SET_SCAN_LAST_REGION, NULL, 0);
+
+ ret=Maat_scan_intval(g_feather, table_id, 2015, result, 4, &mid, 0);
+ EXPECT_EQ(ret, 1);
+ EXPECT_EQ(result[0].config_id, 187);
+ Maat_clean_status(&mid);
+
+}
+
+TEST(NOTLogic, ScanHitAtLastEmptySimilar)
+{
+ const char* string_should_not_hit="This string should not hit.";
+ const char* string_match_no_region="This string is matched against a empty table.";
+ int ret=0;
+ int table_id=0;
+ struct Maat_rule_t result[4];
+ int found_pos[4];
+ const char* not_hit_table_name="HTTP_URL", *hit_table_name1="IP_PLUS_CONFIG", *empty_table_name="EMPTY_SIMILAR";
+ scan_status_t mid=NULL;
+ table_id=Maat_table_register(g_feather, not_hit_table_name);
+ ASSERT_GT(table_id, 0);
+
+ ret=Maat_full_scan_string(g_feather, table_id, CHARSET_GBK, string_should_not_hit, strlen(string_should_not_hit),
+ result, found_pos, 4, &mid, 0);
+ EXPECT_GE(ret, 0);
+
+ struct ipaddr ipv4_addr;
+ struct stream_tuple4_v4 v4_addr;
+ ipv4_addr.addrtype=ADDR_TYPE_IPV4;
+ inet_pton(AF_INET,"10.0.8.188",&(v4_addr.saddr));
+ v4_addr.source=htons(18611);
+ inet_pton(AF_INET,"10.0.8.20",&(v4_addr.daddr));
+ v4_addr.dest=htons(80);
+ ipv4_addr.v4=&v4_addr;
+
+ table_id=Maat_table_register(g_feather, hit_table_name1);
+ ASSERT_GT(table_id, 0);
+
+ ret=Maat_scan_proto_addr(g_feather, table_id, &ipv4_addr, 6, result, 4, &mid,0);
+
+
+ EXPECT_EQ(ret, -2);
+
+ table_id=Maat_table_register(g_feather, empty_table_name);
+ ASSERT_GT(table_id, 0);
+
+ Maat_set_scan_status(g_feather, &mid, MAAT_SET_SCAN_LAST_REGION, NULL, 0);
+
+ ret=Maat_similar_scan_string(g_feather, table_id, string_match_no_region, strlen(string_match_no_region), result, 4,&mid, 0);
+ EXPECT_EQ(ret, 1);
+ EXPECT_EQ(result[0].config_id, 188);
+ Maat_clean_status(&mid);
+
+}
+
TEST(NOTLogic, ScanNotIP)
{
const char* string_should_hit="This string ONLY contains must-contained-string-of-rule-145.";