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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libstdc++-v3/] [testsuite/] [27_io/] [basic_filebuf/] [overflow/] [char/] [9988.cc] - Blame information for rev 424

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// 2001-05-21 Benjamin Kosnik  <bkoz@redhat.com>
2
 
3
// Copyright (C) 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
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
// 27.8.1.4 Overridden virtual functions
21
 
22
// { dg-require-fileio "" }
23
 
24
#include <fstream>
25
#include <testsuite_hooks.h>
26
 
27
const char name_08[] = "filebuf_virtuals-8.txt"; // empty file, need to create
28
 
29
class OverBuf : public std::filebuf
30
{
31
public:
32
  int_type pub_overflow(int_type c = traits_type::eof())
33
  { return std::filebuf::overflow(c); }
34
};
35
 
36
// libstdc++/9988
37
// filebuf::overflow writes EOF to file
38
void test15()
39
{
40
  using namespace std;
41
  bool test __attribute__((unused)) = true;
42
 
43
  OverBuf fb;
44
  fb.open(name_08, ios_base::out | ios_base::trunc);
45
 
46
  fb.sputc('a');
47
  fb.pub_overflow('b');
48
  fb.pub_overflow();
49
  fb.sputc('c');
50
  fb.close();
51
 
52
  filebuf fbin;
53
  fbin.open(name_08, ios_base::in);
54
  filebuf::int_type c;
55
  c = fbin.sbumpc();
56
  VERIFY( c == 'a' );
57
  c = fbin.sbumpc();
58
  VERIFY( c == 'b' );
59
  c = fbin.sbumpc();
60
  VERIFY( c == 'c' );
61
  c = fbin.sbumpc();
62
  VERIFY( c == filebuf::traits_type::eof() );
63
  fbin.close();
64
}
65
 
66
int main()
67
{
68
  test15();
69
  return 0;
70
}

powered by: WebSVN 2.1.0

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