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 22#include <istream> 23#include <sstream> 24#include <testsuite_hooks.h> 25 26void 27test01() 28{ 29 bool test __attribute__((unused)) = true; 30 const std::string str_01; 31 const std::string str_02("soul eyes: john coltrane quartet"); 32 std::string strtmp; 33 34 std::stringbuf isbuf_03(str_02, std::ios_base::in); 35 std::stringbuf isbuf_04(str_02, std::ios_base::in); 36 std::stringbuf isbuf_05(str_02, std::ios_base::in); 37 38 std::istream is_00(&isbuf_05); 39 std::istream is_03(&isbuf_03); 40 std::istream is_04(&isbuf_04); 41 std::ios_base::iostate state1, state2; 42 43 // istream& putback(char c) 44 is_04.ignore(30); 45 is_04.clear(); 46 state1 = is_04.rdstate(); 47 is_04.putback('t'); 48 VERIFY( is_04.gcount() == 0 ); // DR 60 49 state2 = is_04.rdstate(); 50 VERIFY( state1 == state2 ); 51 VERIFY( is_04.peek() == 't' ); 52 53 // istream& unget() 54 is_04.clear(); 55 state1 = is_04.rdstate(); 56 is_04.unget(); 57 VERIFY( is_04.gcount() == 0 ); // DR 60 58 state2 = is_04.rdstate(); 59 VERIFY( state1 == state2 ); 60 VERIFY( is_04.peek() == 'r' ); 61 62 // int sync() 63 is_00.ignore(10); 64 int count1 = is_00.gcount(); 65 is_00.sync(); 66 int count2 = is_00.gcount(); 67 VERIFY (count1 == count2 ); // DR 60 68} 69 70int 71main() 72{ 73 test01(); 74 return 0; 75} 76