Skip to content

Commit

Permalink
Small extra test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
Anilm3 committed Sep 20, 2024
1 parent 494cfaf commit afe19e8
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/matcher/equals.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ template <typename T = void> class equals : public base_impl<equals<T>> {
{
if constexpr (std::is_same_v<T, int64_t> || std::is_same_v<T, uint64_t>) {
return {std::cmp_equal(expected_, obtained), {}};
} else {
}
if constexpr (std::is_same_v<T, bool>) {
return {expected_ == obtained, {}};
}
}
Expand Down
81 changes: 78 additions & 3 deletions tests/matcher/equals_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,45 @@ namespace {

TEST(TestEqualsBool, Basic)
{
ddwaf_object tmp;
{
matcher::equals<bool> matcher(false);

EXPECT_TRUE(matcher.match(false).first);
EXPECT_FALSE(matcher.match(true).first);

EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_BOOL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_FLOAT));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_SIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_UNSIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_STRING));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_MAP));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_ARRAY));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_NULL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_INVALID));

EXPECT_TRUE(matcher.match(*ddwaf_object_bool(&tmp, false)).first);
EXPECT_FALSE(matcher.match(*ddwaf_object_bool(&tmp, true)).first);
}

{
matcher::equals<bool> matcher(true);

EXPECT_TRUE(matcher.match(true).first);
EXPECT_FALSE(matcher.match(false).first);

EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_BOOL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_FLOAT));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_SIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_UNSIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_STRING));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_MAP));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_ARRAY));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_NULL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_INVALID));

EXPECT_TRUE(matcher.match(*ddwaf_object_bool(&tmp, true)).first);
EXPECT_FALSE(matcher.match(*ddwaf_object_bool(&tmp, false)).first);
}
}

Expand All @@ -36,6 +63,23 @@ TEST(TestEqualsInt, Basic)
EXPECT_TRUE(matcher.match(5).first);
EXPECT_FALSE(matcher.match(1).first);
EXPECT_FALSE(matcher.match(-1).first);

EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_SIGNED));
EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_UNSIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_FLOAT));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_STRING));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_MAP));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_ARRAY));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_NULL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_INVALID));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_BOOL));

ddwaf_object tmp;
EXPECT_TRUE(matcher.match(*ddwaf_object_signed(&tmp, 5)).first);
EXPECT_TRUE(matcher.match(*ddwaf_object_unsigned(&tmp, 5)).first);

EXPECT_FALSE(matcher.match(*ddwaf_object_signed(&tmp, 6)).first);
EXPECT_FALSE(matcher.match(*ddwaf_object_unsigned(&tmp, 6)).first);
}

TEST(TestEqualsUint, Basic)
Expand All @@ -44,15 +88,46 @@ TEST(TestEqualsUint, Basic)

EXPECT_TRUE(matcher.match(2132132).first);
EXPECT_FALSE(matcher.match(1).first);

EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_SIGNED));
EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_UNSIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_FLOAT));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_STRING));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_MAP));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_ARRAY));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_NULL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_INVALID));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_BOOL));

ddwaf_object tmp;
EXPECT_TRUE(matcher.match(*ddwaf_object_signed(&tmp, 2132132)).first);
EXPECT_TRUE(matcher.match(*ddwaf_object_unsigned(&tmp, 2132132)).first);

EXPECT_FALSE(matcher.match(*ddwaf_object_signed(&tmp, 6)).first);
EXPECT_FALSE(matcher.match(*ddwaf_object_unsigned(&tmp, 6)).first);
}

TEST(TestEqualsDouble, Basic)
{
matcher::equals<double> matcher(5.1, 0.0001);
matcher::equals<double> matcher(5.01, 0.1);

EXPECT_TRUE(matcher.match(5.1).first);
EXPECT_FALSE(matcher.match(5.11).first);
EXPECT_TRUE(matcher.match(5.01).first);
EXPECT_FALSE(matcher.match(5.12).first);
EXPECT_FALSE(matcher.match(-5.1).first);

EXPECT_TRUE(matcher.is_supported_type(DDWAF_OBJ_FLOAT));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_SIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_UNSIGNED));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_STRING));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_MAP));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_ARRAY));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_NULL));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_INVALID));
EXPECT_FALSE(matcher.is_supported_type(DDWAF_OBJ_BOOL));

ddwaf_object tmp;
EXPECT_TRUE(matcher.match(*ddwaf_object_float(&tmp, 5.01)).first);
EXPECT_FALSE(matcher.match(*ddwaf_object_float(&tmp, 5.5)).first);
}

TEST(TestEqualsString, Basic)
Expand Down

0 comments on commit afe19e8

Please sign in to comment.