From: Benjamin Kosnik Date: Mon, 25 Jun 2012 06:01:13 +0000 (+0000) Subject: 02_match: To... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=511e47fc2fa059e83d412b4598d2c3fcc90dc839;p=gcc.git 02_match: To... 2012-06-24 Benjamin Kosnik * testsuite/28_regex/algorithms/02_match: To... * testsuite/28_regex/algorithms/match: ...this. * testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc: Remove duplicate. From-SVN: r188923 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index febf2a8694c..7ad0f829004 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2012-06-24 Benjamin Kosnik + + * testsuite/28_regex/algorithms/02_match: To... + * testsuite/28_regex/algorithms/match: ...this. + * testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc: Remove + duplicate. + 2012-06-18 Jörg Sonnenberger Jonathan Wakely @@ -438,20 +445,20 @@ 2012-04-12 Jeffrey Yasskin PR libstdc++/52822 - * include/bits/stl_algo.h (__find_if_not): Expose in C++98 mode. - (__find_if_not_n): Like __find_if_not, but works on and updates a + * include/bits/stl_algo.h (__find_if_not): Expose in C++98 mode. + (__find_if_not_n): Like __find_if_not, but works on and updates a counted range instead of a bounded range. - (stable_partition): Guarantee !__pred(*__first) in call to + (stable_partition): Guarantee !__pred(*__first) in call to __stable_partition_adaptive() or __inplace_stable_partition(). - (__stable_partition_adaptive): Use new precondition to avoid + (__stable_partition_adaptive): Use new precondition to avoid moving/copying objects onto themselves. Guarantee new precondition to recursive calls. - (__inplace_stable_partition): Use new precondition to simplify + (__inplace_stable_partition): Use new precondition to simplify base case, remove __last parameter. Guarantee new precondition to recursive calls. - * testsuite/25_algorithms/stable_partition/moveable.cc (test02): + * testsuite/25_algorithms/stable_partition/moveable.cc (test02): Test a sequence that starts with a value matching the predicate. - * testsuite/25_algorithms/stable_partition/pr52822.cc: Test + * testsuite/25_algorithms/stable_partition/pr52822.cc: Test vectors, which have a destructive self-move-assignment. 2012-04-12 Andreas Schwab diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc deleted file mode 100644 index 4a7161a7967..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-11 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests BRE against a std::string target. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("\\(a\\).*", std::regex::basic); - std::string target("aaba"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target.begin() ); - VERIFY( m[1].second == target.begin()+1 ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc deleted file mode 100644 index 6c0fdd76f2c..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests BRE against a std::string target, exercising range {0,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{0,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc deleted file mode 100644 index 3439b544b63..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests BRE against a std::string target, exercising range {1,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{1,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc deleted file mode 100644 index dfd00a0f3d7..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc +++ /dev/null @@ -1,61 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests BRE against a std::string target, exercising range {2,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{2,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc deleted file mode 100644 index ad0f57e221d..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-21 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a C-string target, plus-sign match. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("(a+)", std::regex::extended); - const char target[] = "aa"; - std::cmatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( re.mark_count() == 1 ); - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target ); - VERIFY( m.prefix().second == target ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target+sizeof(target) ); - VERIFY( m.suffix().second == target+sizeof(target) ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target ); - VERIFY( m[0].second == target+sizeof(target) ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target ); - VERIFY( m[1].second == target+sizeof(target) ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc deleted file mode 100644 index 21abea456a9..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-21 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a C-string target, question-mark match. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("(aa?)", std::regex::extended); - char target[] = "a"; - std::cmatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( re.mark_count() == 1 ); - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target ); - VERIFY( m.prefix().second == target ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target+sizeof(target) ); - VERIFY( m.suffix().second == target+sizeof(target) ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target ); - VERIFY( m[0].second == target+sizeof(target) ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target ); - VERIFY( m[1].second == target+sizeof(target) ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc deleted file mode 100644 index 8d3716b1edf..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-11 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a std::string target. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re(".*", std::regex::extended); - std::string target("aaba"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc deleted file mode 100644 index a0a2e1fa9d8..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a std::string target, exercising range {0,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{0,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc deleted file mode 100644 index b50e07645ab..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a std::string target, exercising range {1,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{1,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc deleted file mode 100644 index ca322a8d4cd..00000000000 --- a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc +++ /dev/null @@ -1,61 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 Stephen M. Webb -// -// Copyright (C) 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -// 28.11.2 regex_match -// Tests ERE against a std::string target, exercising range {2,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{2,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_01.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_01.cc new file mode 100644 index 00000000000..4a7161a7967 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_01.cc @@ -0,0 +1,63 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-11 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests BRE against a std::string target. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("\\(a\\).*", std::regex::basic); + std::string target("aaba"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target.begin() ); + VERIFY( m[1].second == target.begin()+1 ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_00_03.cc new file mode 100644 index 00000000000..6c0fdd76f2c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_00_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests BRE against a std::string target, exercising range {0,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{0,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_01_03.cc new file mode 100644 index 00000000000..3439b544b63 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_01_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests BRE against a std::string target, exercising range {1,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{1,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_02_03.cc new file mode 100644 index 00000000000..dfd00a0f3d7 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_02_03.cc @@ -0,0 +1,61 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests BRE against a std::string target, exercising range {2,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{2,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_plus.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_plus.cc new file mode 100644 index 00000000000..ad0f57e221d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_plus.cc @@ -0,0 +1,65 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-21 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a C-string target, plus-sign match. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("(a+)", std::regex::extended); + const char target[] = "aa"; + std::cmatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( re.mark_count() == 1 ); + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target ); + VERIFY( m.prefix().second == target ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target+sizeof(target) ); + VERIFY( m.suffix().second == target+sizeof(target) ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target ); + VERIFY( m[0].second == target+sizeof(target) ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target ); + VERIFY( m[1].second == target+sizeof(target) ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_questionmark.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_questionmark.cc new file mode 100644 index 00000000000..21abea456a9 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_questionmark.cc @@ -0,0 +1,65 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-21 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a C-string target, question-mark match. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("(aa?)", std::regex::extended); + char target[] = "a"; + std::cmatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( re.mark_count() == 1 ); + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target ); + VERIFY( m.prefix().second == target ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target+sizeof(target) ); + VERIFY( m.suffix().second == target+sizeof(target) ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target ); + VERIFY( m[0].second == target+sizeof(target) ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target ); + VERIFY( m[1].second == target+sizeof(target) ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_any.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_any.cc new file mode 100644 index 00000000000..8d3716b1edf --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_any.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-11 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a std::string target. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re(".*", std::regex::extended); + std::string target("aaba"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_00_03.cc new file mode 100644 index 00000000000..a0a2e1fa9d8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_00_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a std::string target, exercising range {0,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{0,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_01_03.cc new file mode 100644 index 00000000000..b50e07645ab --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_01_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a std::string target, exercising range {1,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{1,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_02_03.cc new file mode 100644 index 00000000000..ca322a8d4cd --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_02_03.cc @@ -0,0 +1,61 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 28.11.2 regex_match +// Tests ERE against a std::string target, exercising range {2,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{2,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc b/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc deleted file mode 100644 index e8ddb77bbb3..00000000000 --- a/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++98" } - -// Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// . - -#include // { dg-excess-errors "In file included from" } - -