1 // Copyright (C) 2001-2018 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 3, 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 COPYING3. If not see 16 // <http://www.gnu.org/licenses/>. 17 18 // 27.8.1.3 filebuf member functions 19 // @require@ %-*.tst %-*.txt 20 // @diff@ %-*.tst %-*.txt 21 22 // various tests for filebuf::open() and filebuf::close() including 23 // the non-portable functionality in the libstdc++-v3 IO library 24 25 // { dg-require-fileio "" } 26 27 #include <fstream> 28 #include <testsuite_hooks.h> 29 30 const char name_01[] = "filebuf_members-1.tst"; 31 const char name_02[] = "filebuf_members-1.txt"; 32 33 // Test member functions. test_01()34void test_01() 35 { 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 65 int main()66main() 67 { 68 test_01(); 69 return 0; 70 } 71 72 73