OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [testsuite/] [22_locale/] [ctype/] [to/] [wchar_t/] [1.cc] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 jlechner
// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
2
//
3
// This file is part of the GNU ISO C++ Library.  This library is free
4
// software; you can redistribute it and/or modify it under the
5
// terms of the GNU General Public License as published by the
6
// Free Software Foundation; either version 2, or (at your option)
7
// any later version.
8
 
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
 
14
// You should have received a copy of the GNU General Public License along
15
// with this library; see the file COPYING.  If not, write to the Free
16
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
17
// USA.
18
 
19
// As a special exception, you may use this file as part of a free software
20
// library without restriction.  Specifically, if other files instantiate
21
// templates or use macros or inline functions from this file, or you compile
22
// this file and link it with other files to produce an executable, this
23
// file does not by itself cause the resulting executable to be covered by
24
// the GNU General Public License.  This exception does not however
25
// invalidate any other reasons why the executable file might be covered by
26
// the GNU General Public License.
27
 
28
// 22.2.1.3.2 ctype<char> members
29
 
30
#include <locale>
31
#include <testsuite_hooks.h>
32
 
33
typedef wchar_t char_type;
34
class gnu_ctype: public std::ctype<char_type> { };
35
 
36
void test01()
37
{
38
  bool test __attribute__((unused)) = true;
39
  const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES";
40
  const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES";
41
  const char_type strlit02[] = L"manilla, cebu, tandag philippines";
42
  const char_type c00 = L'S';
43
  const char_type c10 = L's';
44
 
45
  gnu_ctype gctype;
46
  char_type c100;
47
  int len = std::char_traits<char_type>::length(strlit00);
48
  char_type c_array[len + 1];
49
 
50
  // sanity check ctype_base::mask members
51
  int i01 = std::ctype_base::space;
52
  int i02 = std::ctype_base::upper;
53
  int i03 = std::ctype_base::lower;
54
  int i04 = std::ctype_base::digit;
55
  int i05 = std::ctype_base::punct;
56
  int i06 = std::ctype_base::alpha;
57
  int i07 = std::ctype_base::xdigit;
58
  int i08 = std::ctype_base::alnum;
59
  int i09 = std::ctype_base::graph;
60
  int i10 = std::ctype_base::print;
61
  int i11 = std::ctype_base::cntrl;
62
  VERIFY ( i01 != i02);
63
  VERIFY ( i02 != i03);
64
  VERIFY ( i03 != i04);
65
  VERIFY ( i04 != i05);
66
  VERIFY ( i05 != i06);
67
  VERIFY ( i06 != i07);
68
  VERIFY ( i07 != i08);
69
  VERIFY ( i08 != i09);
70
  VERIFY ( i09 != i10);
71
  VERIFY ( i10 != i11);
72
  VERIFY ( i11 != i01);
73
 
74
  // char_type toupper(char_type c) const
75
  c100 = gctype.toupper(c10);
76
  VERIFY( c100 == c00 );
77
 
78
  // char_type tolower(char_type c) const
79
  c100 = gctype.tolower(c00);
80
  VERIFY( c100 == c10 );
81
 
82
  // char_type toupper(char_type* low, const char_type* hi) const
83
  std::char_traits<char_type>::copy(c_array, strlit02, len + 1);
84
  gctype.toupper(c_array, c_array + len);
85
  VERIFY( !std::char_traits<char_type>::compare(c_array, strlit01, len - 1) );
86
 
87
  // char_type tolower(char_type* low, const char_type* hi) const
88
  std::char_traits<char_type>::copy(c_array, strlit01, len + 1);
89
  gctype.tolower(c_array, c_array + len);
90
  VERIFY( !std::char_traits<char_type>::compare(c_array, strlit02, len - 1) );
91
}
92
 
93
int main()
94
{
95
  test01();
96
  return 0;
97
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.