OSDN Git Service

2000-06-23 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jun 2000 22:21:47 +0000 (22:21 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jun 2000 22:21:47 +0000 (22:21 +0000)
* bits/std_fstream.h: Formatting tweaks.
* testsuite/27_io/ofstream_members.cc: New file.
* testsuite/27_io/ofstream_members-1.tst: New file.
* testsuite/27_io/ifstream_members.cc: New file.
* testsuite/27_io/ifstream_members-1.tst: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34671 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/bits/std_fstream.h
libstdc++-v3/testsuite/27_io/ifstream_members-1.tst [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ifstream_members.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ofstream_members-1.tst [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ofstream_members.cc [new file with mode: 0644]

index 19f3bc8..0c20b3d 100644 (file)
@@ -1,4 +1,12 @@
 2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
+
+       * bits/std_fstream.h: Formatting tweaks.
+       * testsuite/27_io/ofstream_members.cc: New file.
+       * testsuite/27_io/ofstream_members-1.tst: New file.
+       * testsuite/27_io/ifstream_members.cc: New file.
+       * testsuite/27_io/ifstream_members-1.tst: New file.
+
+2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
             Ulrich Drepper  <drepper@cygnus.com>
        
        * acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Add -D_GNU_SOURCE, so
index 3178c82..158623e 100644 (file)
@@ -1,6 +1,6 @@
 // File based streams -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -291,14 +291,14 @@ namespace std {
           ios_base::openmode __mode = ios_base::out | ios_base::trunc)
       { 
        if (!rdbuf()->open(__s, __mode | ios_base::out))
-         this->setstate (ios_base::failbit); 
+         this->setstate(ios_base::failbit); 
       }
 
       void 
       close(void)
       { 
        if (!rdbuf()->close())
-         setstate (ios_base::failbit); 
+         setstate(ios_base::failbit); 
       }
     };
 
diff --git a/libstdc++-v3/testsuite/27_io/ifstream_members-1.tst b/libstdc++-v3/testsuite/27_io/ifstream_members-1.tst
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/libstdc++-v3/testsuite/27_io/ifstream_members.cc b/libstdc++-v3/testsuite/27_io/ifstream_members.cc
new file mode 100644 (file)
index 0000000..9b4107a
--- /dev/null
@@ -0,0 +1,60 @@
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.8.1.7 ifstream member functions
+
+#include <istream>
+#include <fstream>
+#ifdef DEBUG_ASSERT
+  #include <assert.h>
+#endif
+
+const char name_01[] = "testsuite/ifstream_members-1.tst";
+const char name_02[] = "testsuite/ifstream_members-1.txt";
+
+// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00136.html
+bool test00()
+{
+  bool test = true;
+  std::ifstream ifs1;
+  ifs1.close();
+  
+  // false as expected:
+  test &= !ifs1.is_open();
+   // this is now true:
+  test &= !(ifs1);
+  
+  ifs1.open(name_01);
+  test &= ifs1.is_open();
+  // fail bit still true
+  test &= !(ifs1);
+  test &= ifs1.rdstate() == std::ios_base::failbit;
+
+  ifs1.close();
+
+#ifdef DEBUG_ASSERT
+  assert(test);
+#endif
+  
+  return test;
+}
+
+int main()
+{
+  test00();
+}
diff --git a/libstdc++-v3/testsuite/27_io/ofstream_members-1.tst b/libstdc++-v3/testsuite/27_io/ofstream_members-1.tst
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/libstdc++-v3/testsuite/27_io/ofstream_members.cc b/libstdc++-v3/testsuite/27_io/ofstream_members.cc
new file mode 100644 (file)
index 0000000..0b52519
--- /dev/null
@@ -0,0 +1,60 @@
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.8.1.10 ofstream member functions
+
+#include <ostream>
+#include <fstream>
+#ifdef DEBUG_ASSERT
+  #include <assert.h>
+#endif
+
+const char name_01[] = "testsuite/ofstream_members-1.tst";
+const char name_02[] = "testsuite/ofstream_members-1.txt";
+
+// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00136.html
+bool test00()
+{
+  bool test = true;
+  std::ofstream ofs1;
+  ofs1.close();
+  
+  // false as expected:
+  test &= !ofs1.is_open();
+   // this is now true:
+  test &= !(ofs1);
+  
+  ofs1.open(name_02);
+  test &= ofs1.is_open();
+  // fail bit still true
+  test &= !(ofs1);
+  test &= ofs1.rdstate() == std::ios_base::failbit;
+
+  ofs1.close();
+
+#ifdef DEBUG_ASSERT
+  assert(test);
+#endif
+  
+  return test;
+}
+
+int main()
+{
+  test00();
+}