]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 25_algorithms / copy / streambuf_iterators / char / 4.cc
index 62ecf686ddfc079696846375a29983716adc9237..fe04e9342e73c36da66233cd5b4a9289d4913f3e 100644 (file)
@@ -1,6 +1,6 @@
 // 2006-03-20  Paolo Carlini  <pcarlini@suse.de>
 
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 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
@@ -21,6 +21,8 @@
 #include <fstream>
 #include <algorithm>
 #include <cstring>
+#include <vector>
+
 #include <testsuite_hooks.h>
 
 // { dg-require-fileio "" }
 // In the occasion of libstdc++/25482
 void test01()
 {
-  bool test __attribute__((unused)) = true;
   using namespace std;
 
   typedef istreambuf_iterator<char> in_iterator_type;
 
   ifstream fbuf_ref("istream_unformatted-1.txt"),
-           fbuf("istream_unformatted-1.txt");
+          fbuf("istream_unformatted-1.txt");
 
   char buffer_ref[16500],
        buffer[16500];
@@ -51,8 +52,33 @@ void test01()
   VERIFY( !memcmp(buffer, buffer_ref, 16500) );
 }
 
+void test02()
+{
+  using namespace std;
+
+  typedef istreambuf_iterator<char> in_iterator_type;
+
+  ifstream fbuf_ref("istream_unformatted-1.txt"),
+          fbuf("istream_unformatted-1.txt");
+
+  char buffer_ref[16500];
+  std::vector<char> buffer(16500, 'a');
+
+  fbuf_ref.read(buffer_ref, 16500);
+
+  in_iterator_type beg(fbuf);
+  in_iterator_type end;
+  copy(beg, end, buffer.begin());
+
+  VERIFY( fbuf_ref.good() );
+  VERIFY( fbuf.good() );
+
+  VERIFY( !memcmp(buffer.data(), buffer_ref, 16500) );
+}
+
 int main()
 {
   test01();
+  test02();
   return 0;
 }