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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [testsuite/] [27_io/] [basic_istream/] [get/] [char/] [1.cc] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 jlechner
// 1999-08-11 bkoz
2
 
3
// Copyright (C) 1999, 2000, 2001, 2002, 2003 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
// 27.6.1.3 unformatted input functions
22
 
23
#include <istream>
24
#include <sstream>
25
#include <testsuite_hooks.h>
26
 
27
void
28
test03()
29
{
30
  typedef std::char_traits<char>        traits_type;
31
 
32
  bool test __attribute__((unused)) = true;
33
  const char str_lit01[] =
34
  "   sun*ra \n\t\t\t   & his arkestra, featuring john gilmore: \n"
35
  "                         "
36
    "jazz in silhouette: images and forecasts of tomorrow";
37
 
38
  std::string str01(str_lit01);
39
  std::string strtmp;
40
 
41
  std::stringbuf sbuf_03;
42
  std::stringbuf sbuf_04(str01, std::ios_base::in);
43
  std::stringbuf sbuf_05(str01, std::ios_base::in);
44
 
45
  std::istream is_00(NULL);
46
  std::istream is_04(&sbuf_04);
47
  std::istream is_05(&sbuf_05);
48
  std::ios_base::iostate statefail, stateeof;
49
  statefail = std::ios_base::failbit;
50
  stateeof = std::ios_base::eofbit;
51
  char carray1[400] = "";
52
 
53
  // int_type get()
54
  // istream& get(char*, streamsize, char delim)
55
  // istream& get(char*, streamsize)
56
  // istream& get(streambuf&, char delim)
57
  // istream& get(streambuf&)
58
  is_00.get(carray1, 2);
59
  VERIFY( static_cast<bool>(is_00.rdstate() & statefail) );
60
  VERIFY( is_00.gcount() == 0 );
61
 
62
  is_04.get(carray1, 4);
63
  VERIFY( !(is_04.rdstate() & statefail) );
64
  VERIFY( !traits_type::compare(carray1, "   ", 4) );
65
  VERIFY( is_04.gcount() == 3 );
66
 
67
  is_04.clear();
68
  is_04.get(carray1 + 3, 200);
69
  VERIFY( !(is_04.rdstate() & statefail) );
70
  VERIFY( !(is_04.rdstate() & stateeof) );
71
  VERIFY( !traits_type::compare(carray1, str_lit01, 10) );
72
  VERIFY( is_04.gcount() == 7 );
73
 
74
  is_04.clear();
75
  is_04.get(carray1, 200);
76
  VERIFY( !(is_04.rdstate() & stateeof) );
77
  VERIFY( static_cast<bool>(is_04.rdstate() & statefail) ); // delimiter
78
  VERIFY( is_04.gcount() == 0 );
79
  is_04.clear();
80
  is_04.get(carray1, 200, '[');
81
  VERIFY( static_cast<bool>(is_04.rdstate() & stateeof) );
82
  VERIFY( !(is_04.rdstate() & statefail) );
83
  VERIFY( is_04.gcount() == 125 );
84
  is_04.clear();
85
  is_04.get(carray1, 200);
86
  VERIFY( static_cast<bool>(is_04.rdstate() & stateeof) );
87
  VERIFY( static_cast<bool>(is_04.rdstate() & statefail) );
88
  VERIFY( is_04.gcount() == 0 );
89
 
90
  std::stringbuf sbuf_02(std::ios_base::in);
91
  is_05.clear();
92
  is_05.get(sbuf_02);
93
  VERIFY( is_05.gcount() == 0 );
94
  VERIFY( static_cast<bool>(is_05.rdstate() & statefail) );
95
  VERIFY( !(is_05.rdstate() & stateeof) );
96
 
97
  is_05.clear();
98
  is_05.get(sbuf_03);
99
  VERIFY( is_05.gcount() == 10 );
100
  VERIFY( sbuf_03.str() == "   sun*ra " );
101
  VERIFY( !(is_05.rdstate() & statefail) );
102
  VERIFY( !(is_05.rdstate() & stateeof) );
103
 
104
  is_05.clear();
105
  is_05.get(sbuf_03, '|');
106
  VERIFY( is_05.gcount() == 125 );
107
  VERIFY( sbuf_03.str() == str_lit01 );
108
  VERIFY( !(is_05.rdstate() & statefail) );
109
  VERIFY( static_cast<bool>(is_05.rdstate() & stateeof) );
110
 
111
  is_05.clear();
112
  is_05.get(sbuf_03, '|');
113
  VERIFY( is_05.gcount() == 0 );
114
  VERIFY( static_cast<bool>(is_05.rdstate() & stateeof) );
115
  VERIFY( static_cast<bool>(is_05.rdstate() & statefail) );
116
}
117
 
118
int
119
main()
120
{
121
  test03();
122
  return 0;
123
}

powered by: WebSVN 2.1.0

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