]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 28_regex / traits / char / lookup_classname.cc
CommitLineData
52066eae 1// { dg-do run { target c++11 } }
b6a8e347 2// { dg-timeout-factor 2 }
849cab7b
SW
3
4//
5// 2010-06-23 Stephen M. Webb <stephen.webb@bregmasoft.ca>
6//
99dee823 7// Copyright (C) 2010-2021 Free Software Foundation, Inc.
849cab7b
SW
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.3 Requirements [re.req]
25// 28.2(4) Table 127 - Regular expression traits class requirements
26// 28.7(9) Class template regex_traits [re.traits]
27
28#include <regex>
e5f35533 29#include <forward_list>
849cab7b
SW
30#include <testsuite_hooks.h>
31
32void
33test01()
34{
849cab7b
SW
35 typedef char CharT;
36 typedef std::regex_traits<CharT> traits;
37
2437d31d
PC
38 char n1[] = "lower";
39 char n2[] = "alpha";
40 traits t;
849cab7b
SW
41
42 traits::char_class_type c1 = t.lookup_classname(n1, n1+sizeof(n1)-1);
43 VERIFY( c1 != 0 );
44
45 traits::char_class_type c2 = t.lookup_classname(n1, n1+sizeof(n1)-1, true);
46 traits::char_class_type c3 = t.lookup_classname(n2, n2+sizeof(n2)-1, true);
2437d31d 47 VERIFY( c2 == c3 );
849cab7b
SW
48}
49
e5f35533
TS
50// Test forward iterator
51void
52test02()
53{
54 const char strlit[] = "upper";
55 std::forward_list<char> s(strlit, strlit + strlen(strlit));
56 std::regex_traits<char> traits;
57 VERIFY(traits.isctype('C', traits.lookup_classname(s.begin(), s.end(), false)));
58}
59
60// icase
61void
62test03()
63{
64 std::string s("lower");
65 std::regex_traits<char> traits;
66 VERIFY(traits.isctype('C', traits.lookup_classname(s.begin(), s.end(), true)));
67}
68
849cab7b
SW
69int main()
70{
71 test01();
e5f35533
TS
72 test02();
73 test03();
849cab7b
SW
74 return 0;
75}