diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2010-06-30 20:30:19 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2010-06-30 20:30:19 +0000 |
| commit | 928658cd701a6964d0fa40a0b600ab4a558736b7 (patch) | |
| tree | ecd027be0c542b5bd345909c42d127e1840807c7 /libcxx/test | |
| parent | f638f4ff84b5711082b2c30ce506e8ea5180bd99 (diff) | |
| download | bcm5719-llvm-928658cd701a6964d0fa40a0b600ab4a558736b7.tar.gz bcm5719-llvm-928658cd701a6964d0fa40a0b600ab4a558736b7.zip | |
First test for marked subexpressions
llvm-svn: 107317
Diffstat (limited to 'libcxx/test')
| -rw-r--r-- | libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp index f437c2871f8..13ddec7373c 100644 --- a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp +++ b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp @@ -80,4 +80,48 @@ int main() assert(m.position(0) == 1); assert(m.str(0) == "ab"); } + { + std::cmatch m; + const char s[] = "aab"; + assert(!std::regex_search(s, m, std::regex("ab", std::regex_constants::basic), + std::regex_constants::match_continuous)); + assert(m.size() == 0); + } + { + std::cmatch m; + const char s[] = "abcd"; + assert(std::regex_search(s, m, std::regex("bc", std::regex_constants::basic))); + assert(m.size() == 1); + assert(m.prefix().matched); + assert(m.prefix().first == s); + assert(m.prefix().second == m[0].first); + assert(m.suffix().matched); + assert(m.suffix().first == m[0].second); + assert(m.suffix().second == s+4); + assert(m.length(0) == 2); + assert(m.position(0) == 1); + assert(m.str(0) == "bc"); + } + { + std::cmatch m; + const char s[] = "abcdefghijk"; + assert(std::regex_search(s, m, std::regex("cd\\(\\(e\\)fg\\)hi", + std::regex_constants::basic))); + assert(m.size() == 3); + assert(m.prefix().matched); + assert(m.prefix().first == s); + assert(m.prefix().second == m[0].first); + assert(m.suffix().matched); + assert(m.suffix().first == m[0].second); + assert(m.suffix().second == s+std::regex_traits<char>::length(s)); + assert(m.length(0) == 7); + assert(m.position(0) == 2); + assert(m.str(0) == "cdefghi"); + assert(m.length(1) == 3); + assert(m.position(1) == 4); + assert(m.str(1) == "efg"); + assert(m.length(2) == 1); + assert(m.position(2) == 4); + assert(m.str(2) == "e"); + } } |

