diff options
author | Ian Boros <puppyofkosh@gmail.com> | 2019-02-25 14:38:42 -0500 |
---|---|---|
committer | Ian Boros <puppyofkosh@gmail.com> | 2019-02-28 13:50:38 -0500 |
commit | 5f772b0b1139f4b9bbff098d4bcee59cf2e95cda (patch) | |
tree | 6b47af38db51ef2ca06aaf1e8d6d3250124d1d83 /src/mongo/db/matcher/expression_leaf_test.cpp | |
parent | 1eadc480a431473e8c975e9d2eccb06ad7831c87 (diff) | |
download | mongo-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.cpp | 22 |
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"))); |