]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
1 // { dg-options "-std=gnu++11" }
4 // 2013-09-14 Tim Shen <timshen91@gmail.com>
6 // Copyright (C) 2013 Free Software Foundation, Inc.
8 // This file is part of the GNU ISO C++ Library. This library is free
9 // software; you can redistribute it and/or modify it under the
10 // terms of the GNU General Public License as published by the
11 // Free Software Foundation; either version 3, or (at your option)
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
19 // You should have received a copy of the GNU General Public License along
20 // with this library; see the file COPYING3. If not see
21 // <http://www.gnu.org/licenses/>.
23 // 28.11.3 regex_search
24 // Tests ECMAScript assertion.
27 #include <testsuite_hooks.h>
28 #include <testsuite_regex.h>
30 using namespace __gnu_test
;
36 bool test
__attribute__((unused
)) = true;
38 VERIFY(!regex_search_debug("2123456", regex("^1234")));
39 VERIFY(regex_search_debug("123456", regex("^1234")));
40 VERIFY(regex_search_debug("123456", regex("(5|^)1234")));
41 VERIFY(regex_search_debug("5123456", regex("(5|^)1234")));
42 VERIFY(!regex_search_debug("1234562", regex("3456$")));
43 VERIFY(regex_search_debug("123456", regex("3456$")));
44 VERIFY(!regex_search_debug("123456", regex("(?=1234)56")));
45 VERIFY(regex_search_debug("123456", regex("(?=1234)123456")));
46 VERIFY(regex_search_debug("123456", regex("(?!1234)56")));
47 VERIFY(!regex_search_debug("123456", regex("(?!1234)123456")));
49 VERIFY(regex_search_debug("a-", regex("a\\b-")));
50 VERIFY(!regex_search_debug("ab", regex("a\\bb")));
51 VERIFY(!regex_search_debug("a-", regex("a\\B-")));
52 VERIFY(regex_search_debug("ab", regex("a\\Bb")));
54 string
s("This is a regular expression");
69 regex
re("\\b\\w*\\b");
71 for (auto it
= sregex_iterator(s
.begin(), s
.end(), re
);
72 it
!= sregex_iterator();
75 string
s((*it
)[0].first
, (*it
)[0].second
);
76 VERIFY(s
== sol
[i
++]);
82 regex
re("(?=(as)df)as(df)");
83 regex_search("asdf", m
, re
);
84 VERIFY(m
.size() == 3);
85 VERIFY(m
[0].matched
&& string(m
[0].first
, m
[0].second
) == "asdf");
86 VERIFY(m
[1].matched
&& string(m
[1].first
, m
[1].second
) == "as");
87 VERIFY(m
[2].matched
&& string(m
[2].first
, m
[2].second
) == "df");