diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 02:30:37 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 02:30:37 +0000 |
commit | 3482ff44bfd28ed6d749df33d11323fa4ac25478 (patch) | |
tree | 1c224bfab1803de1debc3780ac8f957f19874588 /libstdc++-v3/testsuite | |
parent | 90f0a84964659a148a533f536c27b1e009b7db9d (diff) | |
download | gcc-3482ff44bfd28ed6d749df33d11323fa4ac25478.tar.gz |
2001-06-11 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3126
* include/bits/basic_string.h (string::compare): Adjust signatures
as per DR 5.
* include/bits/basic_string.tcc: And here.
libstdc++/2346
* config/c_io_stdio.h: Remove whitespace.
* testsuite/27_io/istream_seeks.cc (test03): Add regression.
(test02): Add regression.
* testsuite/27_io/istream_seeks-3.tst: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43240 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/27_io/istream_seeks-3.tst | 10 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/istream_seeks.cc | 74 |
2 files changed, 82 insertions, 2 deletions
diff --git a/libstdc++-v3/testsuite/27_io/istream_seeks-3.tst b/libstdc++-v3/testsuite/27_io/istream_seeks-3.tst new file mode 100644 index 00000000000..dc45fc9330a --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/istream_seeks-3.tst @@ -0,0 +1,10 @@ +0-0 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-1 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-2 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-3 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-4 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-5 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-6 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-7 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-8 lootpack, peanut butter wolf, rob swift, madlib, quasimoto +0-9 lootpack, peanut butter wolf, rob swift, madlib, quasimoto diff --git a/libstdc++-v3/testsuite/27_io/istream_seeks.cc b/libstdc++-v3/testsuite/27_io/istream_seeks.cc index 97ef01b121c..a8f138eb7b4 100644 --- a/libstdc++-v3/testsuite/27_io/istream_seeks.cc +++ b/libstdc++-v3/testsuite/27_io/istream_seeks.cc @@ -1,6 +1,6 @@ // 2000-06-29 bkoz -// Copyright (C) 2000 Free Software Foundation +// Copyright (C) 2000, 2001 Free Software Foundation // // 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 @@ -28,7 +28,6 @@ #include <fstream> #include <debug_assert.h> - bool test01() { using namespace std; @@ -64,6 +63,71 @@ bool test01() return test; } +const char* s = " lootpack, peanut butter wolf, rob swift, madlib, quasimoto"; +const int times = 10; + +void write_rewind(std::iostream& stream) +{ + for (int j = 0; j < times; j++) + { + bool test = true; + std::streampos begin = stream.tellg(); + + for (int i = 0; i < times; ++i) + stream << j << '-' << i << s << '\n'; + + stream.seekg(begin); + std::streampos end = stream.tellg(); + std::streampos badpos = std::streampos(std::streambuf::off_type(-1)); + } +} + +void check_contents(std::iostream& stream) +{ + bool test = true; + + stream.clear(); + stream.seekg(0, std::ios::beg); + int i = 0; + int loop = times * times + 2; + while (i < loop) + { + stream.ignore(80, '\n'); + if (stream.good()) + ++i; + else + break; + } + VERIFY( i == times ); +} + +// fstream +// libstdc++/2346 +void test02() +{ + std::fstream ofstrm; + ofstrm.open("istream_seeks-3.txt", std::ios::out); + if (!ofstrm) + abort(); + write_rewind(ofstrm); + ofstrm.close(); + + std::fstream ifstrm; + ifstrm.open("istream_seeks-3.txt", std::ios::in); + check_contents(ifstrm); + ifstrm.close(); +} + +// stringstream +// libstdc++/2346 +void test03() +{ + std::stringstream sstrm; + + write_rewind(sstrm); + check_contents(sstrm); +} + // fstreams void test04(void) { @@ -289,7 +353,13 @@ void test05(void) int main() { test01(); + + test02(); + test03(); + test04(); test05(); return 0; } + + |