summaryrefslogtreecommitdiff
path: root/src/mongo/db/matcher/expression_leaf_test.cpp
diff options
context:
space:
mode:
authorIan Boros <puppyofkosh@gmail.com>2019-02-25 14:38:42 -0500
committerIan Boros <puppyofkosh@gmail.com>2019-02-28 13:50:38 -0500
commit5f772b0b1139f4b9bbff098d4bcee59cf2e95cda (patch)
tree6b47af38db51ef2ca06aaf1e8d6d3250124d1d83 /src/mongo/db/matcher/expression_leaf_test.cpp
parent1eadc480a431473e8c975e9d2eccb06ad7831c87 (diff)
downloadmongo-5f772b0b1139f4b9bbff098d4bcee59cf2e95cda.tar.gz
SERVER-39697 MatchExpressions regex error at parse time if regex is invalid
Diffstat (limited to 'src/mongo/db/matcher/expression_leaf_test.cpp')
-rw-r--r--src/mongo/db/matcher/expression_leaf_test.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mongo/db/matcher/expression_leaf_test.cpp b/src/mongo/db/matcher/expression_leaf_test.cpp
index 2b8a7dc816a..be0b2aa9445 100644
--- a/src/mongo/db/matcher/expression_leaf_test.cpp
+++ b/src/mongo/db/matcher/expression_leaf_test.cpp
@@ -716,8 +716,7 @@ TEST(RegexMatchExpression, MatchesElementExact) {
TEST(RegexMatchExpression, TooLargePattern) {
string tooLargePattern(50 * 1000, 'z');
- ASSERT_THROWS_CODE(
- RegexMatchExpression("a", tooLargePattern, ""), AssertionException, ErrorCodes::BadValue);
+ ASSERT_THROWS_CODE(RegexMatchExpression("a", tooLargePattern, ""), AssertionException, 51091);
}
TEST(RegexMatchExpression, MatchesElementSimplePrefix) {
@@ -976,15 +975,20 @@ TEST(RegexMatchExpression, RegexOptionsStringCannotContainEmbeddedNullByte) {
}
}
-TEST(RegexMatchExpression, MalformedRegexAcceptedButMatchesNothing) {
- RegexMatchExpression regex("a", "[(*ACCEPT)", "");
- ASSERT_FALSE(regex.matchesBSON(BSON("a"
- << "")));
- ASSERT_FALSE(regex.matchesBSON(BSON("a"
- << "[")));
+TEST(RegexMatchExpression, MalformedRegexNotAccepted) {
+ ASSERT_THROWS_CODE(RegexMatchExpression("a", // path
+ "[", // regex
+ "" // options
+ ),
+ AssertionException,
+ 51091);
}
-TEST(RegexMatchExpression, RegexAcceptsUCPOption) {
+TEST(RegexMatchExpression, MalformedRegexWithStartOptionNotAccepted) {
+ ASSERT_THROWS_CODE(RegexMatchExpression("a", "[(*ACCEPT)", ""), AssertionException, 51091);
+}
+
+TEST(RegexMatchExpression, RegexAcceptsUCPStartOption) {
RegexMatchExpression regex("a", "(*UCP)(\\w|\u304C)", "");
ASSERT(regex.matchesBSON(BSON("a"
<< "k")));