diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2019-07-03 20:32:35 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2019-07-03 20:32:35 +0000 |
commit | 7afe9ea96f65dc0f32fd57e097967d0414b7b54f (patch) | |
tree | 9c4b3211ce5a30dd0cbd7434c5e25e1819b0f420 /libcxx/test/std | |
parent | 50dc28b5569a0fb1436169222e1cace78f9bfae5 (diff) | |
download | bcm5719-llvm-7afe9ea96f65dc0f32fd57e097967d0414b7b54f.tar.gz bcm5719-llvm-7afe9ea96f65dc0f32fd57e097967d0414b7b54f.zip |
Add tests for regex_match ambiguity (aka LWG2273). NFC. Reviewed as https://reviews.llvm.org/D63051
llvm-svn: 365080
Diffstat (limited to 'libcxx/test/std')
-rw-r--r-- | libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp | 24 | ||||
-rw-r--r-- | libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp | 24 |
2 files changed, 48 insertions, 0 deletions
diff --git a/libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp b/libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp index b2fa6e94135..fd5e7e640a7 100644 --- a/libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp +++ b/libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp @@ -1367,6 +1367,30 @@ int main(int, char**) assert(m.position(0) == 0); assert(m.str(0) == s); } + { // LWG 2273 + std::regex re("Foo|FooBar"); + std::cmatch m; + { + assert(std::regex_match("FooBar", m, re)); + assert(m.size() == 1); + assert(m[0] == "FooBar"); + } + { + assert(std::regex_match("Foo", m, re)); + assert(m.size() == 1); + assert(m[0] == "Foo"); + } + { + assert(!std::regex_match("FooBarBaz", m, re)); + assert(m.size() == 0); + assert(m.empty()); + } + { + assert(!std::regex_match("FooBa", m, re)); + assert(m.size() == 0); + assert(m.empty()); + } + } return 0; } diff --git a/libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp b/libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp index bd96c9830c0..cb11f3bdf66 100644 --- a/libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp +++ b/libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp @@ -1547,6 +1547,30 @@ int main(int, char**) assert(m.position(0) == 0); assert(m.str(0) == s); } + { // LWG 2273 + std::regex re("Foo|FooBar"); + std::cmatch m; + { + assert(std::regex_search("FooBar", m, re)); + assert(m.size() == 1); + assert(m[0] == "Foo"); + } + { + assert(std::regex_search("Foo", m, re)); + assert(m.size() == 1); + assert(m[0] == "Foo"); + } + { + assert(std::regex_search("FooBarBaz", m, re)); + assert(m.size() == 1); + assert(m[0] == "Foo"); + } + { + assert(std::regex_search("FooBa", m, re)); + assert(m.size() == 1); + assert(m[0] == "Foo"); + } + } return 0; } |