16059Samurai// 1999-08-11 bkoz 26059Samurai 36059Samurai// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation 46059Samurai// 56059Samurai// This file is part of the GNU ISO C++ Library. This library is free 66059Samurai// software; you can redistribute it and/or modify it under the 76059Samurai// terms of the GNU General Public License as published by the 86059Samurai// Free Software Foundation; either version 2, or (at your option) 96059Samurai// any later version. 106059Samurai 116059Samurai// This library is distributed in the hope that it will be useful, 126059Samurai// but WITHOUT ANY WARRANTY; without even the implied warranty of 136059Samurai// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 146059Samurai// GNU General Public License for more details. 156059Samurai 166059Samurai// You should have received a copy of the GNU General Public License along 176059Samurai// with this library; see the file COPYING. If not, write to the Free 186059Samurai// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 198857Srgrimes// USA. 2031631Sbrian 218857Srgrimes// 27.6.1.3 unformatted input functions 226059Samurai 2330715Sbrian#include <istream> 2430715Sbrian#include <sstream> 2526031Sbrian#include <testsuite_hooks.h> 2630715Sbrian 2726031Sbrianvoid 2830715Sbriantest01() 2926031Sbrian{ 3030715Sbrian typedef std::ios::traits_type traits_type; 3130715Sbrian 3231343Sbrian bool test __attribute__((unused)) = true; 3326031Sbrian const std::string str_01; 3431343Sbrian const std::string str_02("soul eyes: john coltrane quartet"); 3530715Sbrian std::string strtmp; 3630715Sbrian 3726516Sbrian std::stringbuf isbuf_03(str_02, std::ios_base::in); 3830715Sbrian std::stringbuf isbuf_04(str_02, std::ios_base::in); 3930715Sbrian 4030715Sbrian std::istream is_00(NULL); 4130715Sbrian std::istream is_03(&isbuf_03); 4230715Sbrian std::istream is_04(&isbuf_04); 4330715Sbrian std::ios_base::iostate state1, state2, statefail, stateeof; 4430715Sbrian statefail = std::ios_base::failbit; 4530715Sbrian stateeof = std::ios_base::eofbit; 4630715Sbrian 4730715Sbrian char carray[60] = ""; 4831343Sbrian 4930715Sbrian // istream& ignore(streamsize n = 1, int_type delim = traits::eof()) 5030715Sbrian is_04.read(carray, 9); 5130715Sbrian VERIFY( is_04.peek() == ':' ); 5230715Sbrian 536059Samurai state1 = is_04.rdstate(); 546059Samurai is_04.ignore(); 556059Samurai VERIFY( is_04.gcount() == 1 ); 566059Samurai state2 = is_04.rdstate(); 576059Samurai VERIFY( state1 == state2 ); 5813389Sphk VERIFY( is_04.peek() == ' ' ); 5931343Sbrian 6026031Sbrian state1 = is_04.rdstate(); 6131343Sbrian is_04.ignore(0); 626059Samurai VERIFY( is_04.gcount() == 0 ); 6326142Sbrian state2 = is_04.rdstate(); 646059Samurai VERIFY( state1 == state2 ); 6525630Sbrian VERIFY( is_04.peek() == ' ' ); 6625630Sbrian 676059Samurai state1 = is_04.rdstate(); 6826940Sbrian is_04.ignore(5, traits_type::to_int_type(' ')); 6930715Sbrian VERIFY( is_04.gcount() == 1 ); 7030715Sbrian state2 = is_04.rdstate(); 7130715Sbrian VERIFY( state1 == state2 ); 7230733Sbrian VERIFY( is_04.peek() == 'j' ); 7330715Sbrian 7431080Sbrian // int_type peek() 756059Samurai state1 = is_04.rdstate(); 766059Samurai VERIFY( is_04.peek() == 'j' ); 776059Samurai VERIFY( is_04.gcount() == 0 ); 7831343Sbrian state2 = is_04.rdstate(); 7931343Sbrian VERIFY( state1 == state2 ); 8031343Sbrian 8131343Sbrian is_04.ignore(30); 8231343Sbrian state1 = is_04.rdstate(); 8331343Sbrian VERIFY( is_04.peek() == traits_type::eof() ); 8431343Sbrian VERIFY( is_04.gcount() == 0 ); 8531343Sbrian state2 = is_04.rdstate(); 8631343Sbrian VERIFY( state1 != state2 ); 8731343Sbrian} 8831343Sbrian 8931343Sbrianint 9031343Sbrianmain() 9131343Sbrian{ 9231343Sbrian test01(); 9331343Sbrian return 0; 9431343Sbrian} 956059Samurai