diff options
Diffstat (limited to 'libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp')
| -rw-r--r-- | libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp | 62 |
1 files changed, 40 insertions, 22 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 206ea3524d1..567301369bf 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 @@ -117,26 +117,44 @@ int main() assert(m.position(0) == 0); assert(m.str(0) == s); } -// { -// 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"); -// } + { + std::cmatch m; + const char s[] = "ababc"; + assert(std::regex_search(s, m, std::regex("\\(ab\\)*c", std::regex_constants::basic))); + assert(m.size() == 2); + 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+5); + assert(m.length(0) == 5); + assert(m.position(0) == 0); + assert(m.str(0) == s); + assert(m.length(1) == 2); + assert(m.position(1) == 2); + assert(m.str(1) == "ab"); + } + { + 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"); + } } |

