1// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 2, or (at your option) 7// any later version. 8 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING. If not, write to the Free 16// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 17// USA. 18 19// 27.8.1.3 filebuf member functions 20// @require@ %-*.tst %-*.txt 21// @diff@ %-*.tst %-*.txt 22 23// various tests for filebuf::open() and filebuf::close() including 24// the non-portable functionality in the libstdc++-v3 IO library 25 26#include <fstream> 27#include <testsuite_hooks.h> 28 29const char name_01[] = "filebuf_members-1.tst"; 30const char name_02[] = "filebuf_members-1.txt"; 31 32// Test member functions. 33void test_01() 34{ 35 bool test __attribute__((unused)) = true; 36 const char* name_03 = "filebuf_members-3"; // empty file, need to create 37 38 std::filebuf fb_01; // in 39 std::filebuf fb_02; // out 40 std::filebuf fb_03; // in | out 41 42 // bool is_open() 43 VERIFY( !fb_01.is_open() ); 44 VERIFY( !fb_02.is_open() ); 45 VERIFY( !fb_03.is_open() ); 46 47 // filebuf_type* open(const char* __s, ios_base::openmode __mode) 48 fb_01.open(name_01, std::ios_base::in | std::ios_base::ate); 49 fb_02.open(name_02, std::ios_base::in | std::ios_base::out 50 | std::ios_base::trunc); 51 fb_03.open(name_03, std::ios_base::out | std::ios_base::trunc); 52 VERIFY( fb_01.is_open() ); 53 VERIFY( fb_02.is_open() ); 54 VERIFY( fb_03.is_open() ); 55 56 // filebuf_type* close() 57 fb_01.close(); 58 fb_02.close(); 59 fb_03.close(); 60 VERIFY( !fb_01.is_open() ); 61 VERIFY( !fb_02.is_open() ); 62 VERIFY( !fb_03.is_open() ); 63} 64 65int 66main() 67{ 68 test_01(); 69 return 0; 70} 71 72 73