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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [libstdc++-v3/] [testsuite/] [22_locale/] [num_get/] [get/] [char/] [16.cc] - Blame information for rev 826

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// 2005-04-26  Paolo Carlini  <pcarlini@suse.de>
2
 
3
// Copyright (C) 2005, 2006, 2007, 2008, 2009 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 3, 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 COPYING3.  If not see
18
// <http://www.gnu.org/licenses/>.
19
 
20
// 22.2.2.1.1  num_get members
21
 
22
#include <locale>
23
#include <sstream>
24
#include <limits>
25
#include <testsuite_hooks.h>
26
 
27
void test01()
28
{
29
  using namespace std;
30
  typedef istreambuf_iterator<char> iterator_type;
31
 
32
  bool test __attribute__((unused)) = true;
33
 
34
  stringstream ss;
35
  const num_get<char>& ng = use_facet<num_get<char> >(ss.getloc());
36
  ios_base::iostate err;
37
  iterator_type end;
38
 
39
  unsigned short us0, us1 = numeric_limits<unsigned short>::max();
40
  unsigned int ui0, ui1 = numeric_limits<unsigned int>::max();
41
  unsigned long ul0, ul1 = numeric_limits<unsigned long>::max();
42
  long l01, l1 = numeric_limits<long>::max();
43
  long l02, l2 = numeric_limits<long>::min();
44
#ifdef _GLIBCXX_USE_LONG_LONG
45
  unsigned long long ull0, ull1 = numeric_limits<unsigned long long>::max();
46
  long long ll01, ll1 = numeric_limits<long long>::max();
47
  long long ll02, ll2 = numeric_limits<long long>::min();
48
#endif
49
 
50
  const string empty;
51
 
52
  us0 = 0;
53
  ss << us1;
54
  err = ios_base::goodbit;
55
  end = ng.get(ss.rdbuf(), 0, ss, err, us0);
56
  VERIFY( err == ios_base::eofbit );
57
  VERIFY( us0 == us1 );
58
 
59
  us0 = 0;
60
  ss.clear();
61
  ss.str(empty);
62
  ss << us1 << '0';
63
  err = ios_base::goodbit;
64
  end = ng.get(ss.rdbuf(), 0, ss, err, us0);
65
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
66
  VERIFY( us0 == numeric_limits<unsigned short>::max() );
67
 
68
  ui0 = 0U;
69
  ss.clear();
70
  ss.str(empty);
71
  ss << ui1 << ' ';
72
  err = ios_base::goodbit;
73
  end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
74
  VERIFY( err == ios_base::goodbit );
75
  VERIFY( ui0 == ui1 );
76
 
77
  ui0 = 0U;
78
  ss.clear();
79
  ss.str(empty);
80
  ss << ui1 << '1';
81
  err = ios_base::goodbit;
82
  end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
83
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
84
  VERIFY( ui0 == numeric_limits<unsigned int>::max() );
85
 
86
  ul0 = 0UL;
87
  ss.clear();
88
  ss.str(empty);
89
  ss << ul1;
90
  err = ios_base::goodbit;
91
  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
92
  VERIFY( err == ios_base::eofbit );
93
  VERIFY( ul0 == ul1 );
94
 
95
  ul0 = 0UL;
96
  ss.clear();
97
  ss.str(empty);
98
  ss << ul1 << '2';
99
  err = ios_base::goodbit;
100
  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
101
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
102
  VERIFY( ul0 == numeric_limits<unsigned long>::max() );
103
 
104
  l01 = 0L;
105
  ss.clear();
106
  ss.str(empty);
107
  ss << l1 << ' ';
108
  err = ios_base::goodbit;
109
  end = ng.get(ss.rdbuf(), 0, ss, err, l01);
110
  VERIFY( err == ios_base::goodbit );
111
  VERIFY( l01 == l1 );
112
 
113
  l01 = 0L;
114
  ss.clear();
115
  ss.str(empty);
116
  ss << l1 << '3';
117
  err = ios_base::goodbit;
118
  end = ng.get(ss.rdbuf(), 0, ss, err, l01);
119
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
120
  VERIFY( l01 == numeric_limits<long>::max() );
121
 
122
  l02 = 0L;
123
  ss.clear();
124
  ss.str(empty);
125
  ss << l2;
126
  err = ios_base::goodbit;
127
  end = ng.get(ss.rdbuf(), 0, ss, err, l02);
128
  VERIFY( err == ios_base::eofbit );
129
  VERIFY( l02 == l2 );
130
 
131
  l02 = 0L;
132
  ss.clear();
133
  ss.str(empty);
134
  ss << l2 << '4';
135
  err = ios_base::goodbit;
136
  end = ng.get(ss.rdbuf(), 0, ss, err, l02);
137
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
138
  VERIFY( l02 == numeric_limits<long>::min() );
139
 
140
#ifdef _GLIBCXX_USE_LONG_LONG
141
  ull0 = 0ULL;
142
  ss.clear();
143
  ss.str(empty);
144
  ss << ull1 << ' ';
145
  err = ios_base::goodbit;
146
  end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
147
  VERIFY( err == ios_base::goodbit );
148
  VERIFY( ull0 == ull1 );
149
 
150
  ull0 = 0ULL;
151
  ss.clear();
152
  ss.str(empty);
153
  ss << ull1 << '5';
154
  err = ios_base::goodbit;
155
  end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
156
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
157
  VERIFY( ull0 == numeric_limits<unsigned long long>::max() );
158
 
159
  ll01 = 0LL;
160
  ss.clear();
161
  ss.str(empty);
162
  ss << ll1;
163
  err = ios_base::goodbit;
164
  end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
165
  VERIFY( err == ios_base::eofbit );
166
  VERIFY( ll01 == ll1 );
167
 
168
  ll01 = 0LL;
169
  ss.clear();
170
  ss.str(empty);
171
  ss << ll1 << '6';
172
  err = ios_base::goodbit;
173
  end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
174
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
175
  VERIFY( ll01 == numeric_limits<long long>::max() );
176
 
177
  ll02 = 0LL;
178
  ss.clear();
179
  ss.str(empty);
180
  ss << ll2 << ' ';
181
  err = ios_base::goodbit;
182
  end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
183
  VERIFY( err == ios_base::goodbit );
184
  VERIFY( ll02 == ll2 );
185
 
186
  ll02 = 0LL;
187
  ss.clear();
188
  ss.str(empty);
189
  ss << ll2 << '7';
190
  err = ios_base::goodbit;
191
  end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
192
  VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
193
  VERIFY( ll02 == numeric_limits<long long>::min() );
194
#endif
195
}
196
 
197
int main()
198
{
199
  test01();
200
  return 0;
201
}

powered by: WebSVN 2.1.0

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