diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /libstdc++-v3/testsuite/28_regex/traits/char | |
download | cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2 cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'libstdc++-v3/testsuite/28_regex/traits/char')
10 files changed, 501 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc b/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc new file mode 100644 index 000000000..6f5a2f3ab --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc @@ -0,0 +1,50 @@ +// { dg-do link } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// [28.7] class template regex_traits + +#include <regex> +#include <testsuite_hooks.h> + +// Tests default constructor of the regex_traits class. There is only the +// default constructor. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::regex_traits<char> test_type; + + // required default constructor + test_type t; + + // Check for required typedefs + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; + typedef test_type::locale_type locale_type; + typedef test_type::char_class_type char_class_type; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc new file mode 100644 index 000000000..cb8664ca8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc @@ -0,0 +1,48 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2(4) Table 127 - Regular expression traits class requirements +// 28.7(11) Class template regex_traits [re.traits] + +#include <regex> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits<CharT> traits; + + char name[] = "lower"; + traits t; + + VERIFY( t.isctype('e', t.lookup_classname(name, name+sizeof(name)-1)) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/length.cc b/libstdc++-v3/testsuite/28_regex/traits/char/length.cc new file mode 100644 index 000000000..55406dd0d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/length.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] +// 28.7 (3) static std::size_t length(const char_type* p); + +#include <regex> +#include <testsuite_hooks.h> + +void +test01() +{ + typedef char CharT; + typedef std::regex_traits<CharT> traits; + bool test __attribute__((unused)) = true; + const CharT* p = ""; + + std::size_t i = traits::length(p); + + VERIFY( i == 0 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc new file mode 100644 index 000000000..49ffb511a --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc @@ -0,0 +1,54 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2(4) Table 127 - Regular expression traits class requirements +// 28.7(9) Class template regex_traits [re.traits] + +#include <regex> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits<CharT> traits; + + char n1[] = "lower"; + char n2[] = "alpha"; + traits t; + + traits::char_class_type c1 = t.lookup_classname(n1, n1+sizeof(n1)-1); + VERIFY( c1 != 0 ); + + traits::char_class_type c2 = t.lookup_classname(n1, n1+sizeof(n1)-1, true); + traits::char_class_type c3 = t.lookup_classname(n2, n2+sizeof(n2)-1, true); + VERIFY( c2 == c3 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc new file mode 100644 index 000000000..58eb5878d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc @@ -0,0 +1,50 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 (8) Class template regex_traits [re.traits] + +#include <regex> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits<CharT> traits; + + char name[] = "ll"; + traits t; + + traits::string_type sname = t.lookup_collatename(name, name+sizeof(name)-1); + + VERIFY( !sname.empty() ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc b/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc new file mode 100644 index 000000000..1481dcfbb --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc @@ -0,0 +1,51 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] + +#include <regex> +#include <string> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits<CharT> traits; + + traits t; + traits::string_type G = "abc"; + traits::string_type H = "def"; + + VERIFY( G < H ); + VERIFY( t.transform(G.begin(), G.end()) < t.transform(H.begin(), H.end()) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc b/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc new file mode 100644 index 000000000..7de8904b4 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc @@ -0,0 +1,55 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-02-17 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] + +#include <regex> +#include <string> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits<CharT> traits; + + traits t; + traits::string_type G = "abc"; + traits::string_type H = "def"; + traits::string_type J = "ABC"; + + VERIFY( G < H ); + VERIFY( t.transform_primary(G.begin(), G.end()) < t.transform_primary(H.begin(), H.end()) ); + + VERIFY( G == H ); + VERIFY( t.transform_primary(G.begin(), G.end()) == t.transform_primary(J.begin(), J.end()) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc b/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc new file mode 100644 index 000000000..2dbbba396 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc @@ -0,0 +1,49 @@ +// { dg_do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb <stephen.webb@bregmasoft.ca> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] +// 28.7 (3) static std::size_t length(const char_type* p); + +#include <regex> +#include <testsuite_hooks.h> + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + + std::regex_traits<CharT> t; + CharT c = 'a'; + CharT d = 'a'; + + VERIFY( t.translate(c) == t.translate(d) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc b/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc new file mode 100644 index 000000000..4c963ddd3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc @@ -0,0 +1,46 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// [28.7] class template regex_traits (5) translate_nocase + +#include <regex> +#include <testsuite_hooks.h> + +// Verifies the workings of the regex_traits translate_nocase function. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + + std::regex_traits<CharT> t; + CharT c = 'a'; + CharT C = 'A'; + + VERIFY( t.translate_nocase(c) == t.translate_nocase(C) ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/value.cc b/libstdc++-v3/testsuite/28_regex/traits/char/value.cc new file mode 100644 index 000000000..f0535acb2 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/value.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2008-08-11 Stephen M. Webb <stephen.webb@bregmasoft.com> +// +// 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 +// <http://www.gnu.org/licenses/>. + +// [28.7] class template regex_traits value() function + +#include <regex> +#include <testsuite_hooks.h> + +// Tests the value() function of the regex_traits<char> class. +void test01() +{ + bool test __attribute__((unused)) = true; + std::regex_traits<char> t; + VERIFY( t.value('7', 8) == 7 ); + VERIFY( t.value('7', 10) == 7 ); + VERIFY( t.value('7', 16) == 7 ); + VERIFY( t.value('9', 8) == -1 ); + VERIFY( t.value('9', 10) == 9 ); + VERIFY( t.value('9', 16) == 9 ); + VERIFY( t.value('d', 8) == -1 ); + VERIFY( t.value('d', 10) == -1 ); + VERIFY( t.value('d', 16) == 13 ); +} + +int +main() +{ + test01(); + return 0; +}; |