summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-07-03 20:32:35 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-07-03 20:32:35 +0000
commit7afe9ea96f65dc0f32fd57e097967d0414b7b54f (patch)
tree9c4b3211ce5a30dd0cbd7434c5e25e1819b0f420 /libcxx/test/std
parent50dc28b5569a0fb1436169222e1cace78f9bfae5 (diff)
downloadbcm5719-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.cpp24
-rw-r--r--libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp24
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;
}
OpenPOWER on IntegriCloud