]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 28_regex / algorithms / regex_search / ecma / flags.cc
CommitLineData
52066eae 1// { dg-do run { target c++11 } }
b6a8e347 2// { dg-timeout-factor 2 }
b21abcee
TS
3
4//
5// 2013-09-18 Tim Shen <timshen91@gmail.com>
6//
83ffe9cd 7// Copyright (C) 2013-2023 Free Software Foundation, Inc.
b21abcee
TS
8//
9// This file is part of the GNU ISO C++ Library. This library is free
10// software; you can redistribute it and/or modify it under the
11// terms of the GNU General Public License as published by the
12// Free Software Foundation; either version 3, or (at your option)
13// any later version.
14//
15// This library is distributed in the hope that it will be useful,
16// but WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19//
20// You should have received a copy of the GNU General Public License along
21// with this library; see the file COPYING3. If not see
22// <http://www.gnu.org/licenses/>.
23
24// 28.11.3 regex_search
25// Tests ECMAScript flags.
26
27#include <regex>
28#include <testsuite_hooks.h>
6cb43087 29#include <testsuite_regex.h>
b21abcee 30
6cb43087 31using namespace __gnu_test;
b21abcee
TS
32using namespace std;
33
34void
35test01()
36{
b21abcee
TS
37 cmatch m;
38 regex re("((as)(df))", regex_constants::ECMAScript | regex_constants::nosubs);
6cb43087 39 VERIFY(regex_search_debug("asdf", m, re));
b21abcee
TS
40 VERIFY(m.size() == 1);
41 VERIFY(m[0].matched && string(m[0].first, m[0].second) == "asdf");
42
6cb43087
TS
43 VERIFY( regex_search_debug("a", regex("^a")));
44 VERIFY(!regex_search_debug("a", regex("^a"), regex_constants::match_not_bol));
45 VERIFY( regex_search_debug("a", regex("a$")));
46 VERIFY(!regex_search_debug("a", regex("a$"), regex_constants::match_not_eol));
47 VERIFY( regex_search_debug("a", regex("\\ba")));
48 VERIFY(!regex_search_debug("a", regex("\\ba"),
49 regex_constants::match_not_bow));
50 VERIFY( regex_search_debug("a", regex("a\\b")));
51 VERIFY(!regex_search_debug("a", regex("a\\b"),
52 regex_constants::match_not_eow));
53 VERIFY( regex_search_debug("", regex("")));
54 VERIFY(!regex_search_debug("", regex(""), regex_constants::match_not_null));
55 VERIFY( regex_search_debug("", regex("^$")));
56 VERIFY(!regex_search_debug("", regex("^$"), regex_constants::match_not_null));
57 VERIFY( regex_search_debug("aaa", m, regex("a*?"),
58 regex_constants::match_not_null));
b21abcee 59 VERIFY(m[0].matched && string(m[0].first, m[0].second) == "a");
6cb43087
TS
60 VERIFY( regex_search_debug("asdf", regex("sdf")));
61 VERIFY(!regex_search_debug("asdf", regex("sdf"),
62 regex_constants::match_continuous));
63 VERIFY( regex_search_debug(" a"+1, regex("\\ba"),
64 regex_constants::match_prev_avail));
65 VERIFY( regex_search_debug("ba"+1, regex("\\Ba"),
66 regex_constants::match_prev_avail));
02ba3fc2
TS
67 // PR libstdc++/63920
68 VERIFY(!regex_search_debug("a", regex("b*"), regex_constants::match_not_null));
b21abcee
TS
69}
70
71int
72main()
73{
74 test01();
75 return 0;
76}