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/] [num_get/] [get/] [wchar_t/] [16.cc] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 jlechner
// 2005-04-26  Paolo Carlini  <pcarlini@suse.de>
2
 
3
// Copyright (C) 2005 Free Software Foundation
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 2, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// You should have received a copy of the GNU General Public License along
17
// with this library; see the file COPYING.  If not, write to the Free
18
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19
// USA.
20
 
21
// 22.2.2.1.1  num_get members
22
 
23
#include <locale>
24
#include <sstream>
25
#include <limits>
26
#include <testsuite_hooks.h>
27
 
28
void test01()
29
{
30
  using namespace std;
31
  typedef istreambuf_iterator<wchar_t> iterator_type;
32
 
33
  bool test __attribute__((unused)) = true;
34
 
35
  wstringstream ss;
36
  const num_get<wchar_t>& ng = use_facet<num_get<wchar_t> >(ss.getloc());
37
  ios_base::iostate err;
38
  iterator_type end;
39
 
40
  unsigned short us0, us1 = numeric_limits<unsigned short>::max();
41
  unsigned int ui0, ui1 = numeric_limits<unsigned int>::max();
42
  unsigned long ul0, ul1 = numeric_limits<unsigned long>::max();
43
  long l01, l1 = numeric_limits<long>::max();
44
  long l02, l2 = numeric_limits<long>::min();
45
#ifdef _GLIBCXX_USE_LONG_LONG
46
  unsigned long long ull0, ull1 = numeric_limits<unsigned long long>::max();
47
  long long ll01, ll1 = numeric_limits<long long>::max();
48
  long long ll02, ll2 = numeric_limits<long long>::min();
49
#endif
50
 
51
  const wstring empty;
52
 
53
  us0 = 0;
54
  ss << us1;
55
  err = ios_base::goodbit;
56
  end = ng.get(ss.rdbuf(), 0, ss, err, us0);
57
  VERIFY( err == ios_base::eofbit );
58
  VERIFY( us0 == us1 );
59
 
60
  us0 = 0;
61
  ss.clear();
62
  ss.str(empty);
63
  ss << us1 << L'0';
64
  err = ios_base::goodbit;
65
  end = ng.get(ss.rdbuf(), 0, ss, err, us0);
66
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
67
  VERIFY( us0 == 0 );
68
 
69
  ui0 = 0U;
70
  ss.clear();
71
  ss.str(empty);
72
  ss << ui1 << ' ';
73
  err = ios_base::goodbit;
74
  end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
75
  VERIFY( err == ios_base::goodbit );
76
  VERIFY( ui0 == ui1 );
77
 
78
  ui0 = 0U;
79
  ss.clear();
80
  ss.str(empty);
81
  ss << ui1 << L'1';
82
  err = ios_base::goodbit;
83
  end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
84
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
85
  VERIFY( ui0 == 0U );
86
 
87
  ul0 = 0UL;
88
  ss.clear();
89
  ss.str(empty);
90
  ss << ul1;
91
  err = ios_base::goodbit;
92
  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
93
  VERIFY( err == ios_base::eofbit );
94
  VERIFY( ul0 == ul1 );
95
 
96
  ul0 = 0UL;
97
  ss.clear();
98
  ss.str(empty);
99
  ss << ul1 << L'2';
100
  err = ios_base::goodbit;
101
  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
102
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
103
  VERIFY( ul0 == 0UL );
104
 
105
  l01 = 0L;
106
  ss.clear();
107
  ss.str(empty);
108
  ss << l1 << L' ';
109
  err = ios_base::goodbit;
110
  end = ng.get(ss.rdbuf(), 0, ss, err, l01);
111
  VERIFY( err == ios_base::goodbit );
112
  VERIFY( l01 == l1 );
113
 
114
  l01 = 0L;
115
  ss.clear();
116
  ss.str(empty);
117
  ss << l1 << L'3';
118
  err = ios_base::goodbit;
119
  end = ng.get(ss.rdbuf(), 0, ss, err, l01);
120
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
121
  VERIFY( l01 == 0L );
122
 
123
  l02 = 0L;
124
  ss.clear();
125
  ss.str(empty);
126
  ss << l2;
127
  err = ios_base::goodbit;
128
  end = ng.get(ss.rdbuf(), 0, ss, err, l02);
129
  VERIFY( err == ios_base::eofbit );
130
  VERIFY( l02 == l2 );
131
 
132
  l02 = 0L;
133
  ss.clear();
134
  ss.str(empty);
135
  ss << l2 << L'4';
136
  err = ios_base::goodbit;
137
  end = ng.get(ss.rdbuf(), 0, ss, err, l02);
138
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
139
  VERIFY( l02 == 0L );
140
 
141
#ifdef _GLIBCXX_USE_LONG_LONG
142
  ull0 = 0ULL;
143
  ss.clear();
144
  ss.str(empty);
145
  ss << ull1 << L' ';
146
  err = ios_base::goodbit;
147
  end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
148
  VERIFY( err == ios_base::goodbit );
149
  VERIFY( ull0 == ull1 );
150
 
151
  ull0 = 0ULL;
152
  ss.clear();
153
  ss.str(empty);
154
  ss << ull1 << L'5';
155
  err = ios_base::goodbit;
156
  end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
157
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
158
  VERIFY( ull0 == 0ULL );
159
 
160
  ll01 = 0LL;
161
  ss.clear();
162
  ss.str(empty);
163
  ss << ll1;
164
  err = ios_base::goodbit;
165
  end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
166
  VERIFY( err == ios_base::eofbit );
167
  VERIFY( ll01 == ll1 );
168
 
169
  ll01 = 0LL;
170
  ss.clear();
171
  ss.str(empty);
172
  ss << ll1 << L'6';
173
  err = ios_base::goodbit;
174
  end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
175
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
176
  VERIFY( ll01 == 0LL );
177
 
178
  ll02 = 0LL;
179
  ss.clear();
180
  ss.str(empty);
181
  ss << ll2 << L' ';
182
  err = ios_base::goodbit;
183
  end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
184
  VERIFY( err == ios_base::goodbit );
185
  VERIFY( ll02 == ll2 );
186
 
187
  ll02 = 0LL;
188
  ss.clear();
189
  ss.str(empty);
190
  ss << ll2 << L'7';
191
  err = ios_base::goodbit;
192
  end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
193
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
194
  VERIFY( ll02 == 0LL );
195
#endif
196
}
197
 
198
int main()
199
{
200
  test01();
201
  return 0;
202
}

powered by: WebSVN 2.1.0

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