1// 1999-08-11 bkoz 2 3// Copyright (C) 1999-2015 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.6.1.3 unformatted input functions 21// @require@ %-*.tst %-*.txt 22// @diff@ %-*.tst %-*.txt 23 24// { dg-require-fileio "" } 25 26#include <istream> 27#include <sstream> 28#include <fstream> 29#include <testsuite_hooks.h> 30 31//libstdc++/92: Bug in istream::get(basic_streambuf*) 32// bug reported by bgarcia@laurelnetworks.com 33// http://gcc.gnu.org/ml/libstdc++-prs/2000-q3/msg00041.html 34void 35test07() 36{ 37 bool test __attribute__((unused)) = true; 38 const char* tfn = "istream_unformatted-1.txt"; 39 std::ifstream infile; 40 infile.open(tfn); 41 VERIFY( !(!infile) ); 42 while (infile) 43 { 44 std::string line; 45 std::ostringstream line_ss; 46 while (infile.peek() == '\n') 47 infile.get(); 48 infile.get(*(line_ss.rdbuf())); 49 line = line_ss.str(); 50 VERIFY( line == "1234567890" || line == "" ); 51 } 52} 53 54int 55main() 56{ 57 test07(); 58 return 0; 59} 60