From: Benjamin Kosnik Date: Fri, 5 Oct 2012 21:18:54 +0000 (+0000) Subject: match: Rename to... X-Git-Tag: misc/gccgo-go1_1_2~378 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2edfb151d3fa8dcc5516aaa3cfb99e53d5aaadf;p=thirdparty%2Fgcc.git match: Rename to... 2012-10-05 Benjamin Kosnik * testsuite/28_regex/algorithms/match: Rename to... * testsuite/28_regex/algorithms/regex_match: ...this. * testsuite/28_regex/basic_regex/regex.cc: Rename to... * testsuite/28_regex/basic_regex/ctors/basic/default.cc: ...this. * testsuite/util/testsuite_regex.h: New. * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: New. From-SVN: r192146 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ed0b7077f267..c651247fb353 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2012-10-05 Benjamin Kosnik + + * testsuite/28_regex/algorithms/match: Rename to... + * testsuite/28_regex/algorithms/regex_match: ...this. + * testsuite/28_regex/basic_regex/regex.cc: Rename to... + * testsuite/28_regex/basic_regex/ctors/basic/default.cc: ...this. + * testsuite/util/testsuite_regex.h: New. + * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: New. + 2012-10-05 Jakub Jelinek * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_01.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_01.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_00_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_01_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/basic/string_range_02_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_plus.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_plus.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_questionmark.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/cstring_questionmark.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_any.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_any.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_00_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_01_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/algorithms/match/extended/string_range_02_03.cc rename to libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc similarity index 100% rename from libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc rename to libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc new file mode 100644 index 000000000000..0ab42ebaca6d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc @@ -0,0 +1,52 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// 2012-08-20 Benjamin Kosnik +// +// Copyright (C) 2012 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 +// . + +// basic_regex constructors + raw string literals + +#include +#include + +void +test01() +{ + using namespace __gnu_test; + + // raw string literals + + //string_type sre0(R"(\d{3}-\d{3}-\d{4})"); // expected fail + + string_type sre1(R"( this\n and new : forms\n )"); + + string_type sre2(R"([:num:]{3}-[:num:]{3}-[:num:]{4})"); + + // 1 + regex_type re(R"( this\n and new : forms\n )", std::regex::basic); + + // 2 + regex_sanity_check(sre1); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/util/testsuite_regex.h b/libstdc++-v3/testsuite/util/testsuite_regex.h new file mode 100644 index 000000000000..dbf4b34553d0 --- /dev/null +++ b/libstdc++-v3/testsuite/util/testsuite_regex.h @@ -0,0 +1,130 @@ +// -*- C++ -*- +// regex utils for the C++ library testsuite. +// +// Copyright (C) 2012 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 +#include +#include + +#ifndef _TESTSUITE_REGEX_H +#define _TESTSUITE_REGEX_H 1 + +namespace __gnu_test +{ + // Test on a compilation of simple expressions, throw regex_error on error. + typedef std::regex regex_type; + typedef regex_type::flag_type flag_type; + typedef std::regex_constants::error_type error_type; + typedef std::size_t size_type; + typedef std::string string_type; + + // Utilities + struct regex_expected_fail { }; + + const error_type regex_error_internal(static_cast(-1)); + + // Stringify error codes for text logging. + const char* regex_error_codes[] = + { + "error_collate", + "error_ctype", + "error_escape", + "error_backref", + "error_brack", + "error_paren", + "error_brace", + "error_badbrace", + "error_range", + "error_space", + "error_badrepeat", + "error_complexity", + "error_stack" + }; + + void + show_regex_error_codes() + { + using namespace std; + using namespace std::regex_constants; + const char tab('\t'); + cout << "error_collate = " << tab << error_collate << endl; + cout << "error_ctype = " << tab << error_ctype << endl; + cout << "error_escape = " << tab << error_escape << endl; + cout << "error_backref = " << tab << error_backref << endl; + cout << "error_brack = " << tab << error_brack << endl; + cout << "error_paren = " << tab << error_paren << endl; + cout << "error_brace = " << tab << error_brace << endl; + cout << "error_badbrace = " << tab << error_badbrace << endl; + cout << "error_range = " << tab << error_range << endl; + cout << "error_space = " << tab << error_space << endl; + cout << "error_badrepeat = " << tab << error_badrepeat << endl; + cout << "error_complexity =" << tab << error_complexity << endl; + cout << "error_stack = " << tab << error_stack << endl; + } + + // Arguments + // string __res: the regular expression string + // flag_type __f: flag + // __error: expected error, if any + void + regex_sanity_check(const string_type& __res, + flag_type __f = regex_type::basic, + error_type __error = regex_error_internal) + { + using namespace std; + + try + { + regex_type reo(__res, __f); + auto n = reo.mark_count(); + cout << "regex_type::mark_count " << n << endl; + } + catch (const regex_error& e) + { + cout << "regex_sanity_check: " << __res << endl; + cout << "regex_error::what " << e.what() << endl; + + show_regex_error_codes(); + cout << "regex_error::code " << regex_error_codes[e.code()] << endl; + + if (__error != regex_error_internal) + { + // Then expected error_type is __error. Check. + if (__error != e.code()) + { + throw regex_expected_fail(); + } + } + throw; + } + catch (const logic_error& e) + { + cout << "logic_error::what " << e.what() << endl; + throw; + } + catch (const std::exception& e) + { + cout << "exception: " << endl; + throw; + } + } + +} // namespace __gnu_test +#endif