diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-23 23:35:20 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-23 23:35:20 +0000 |
commit | bb1353918c6c803b11a1d81a29c2cbd940a4d3e1 (patch) | |
tree | be6c98097023463dca2dc72c14b483994349d764 | |
parent | d99109cb90f9a5c0078d05f7ae439aecafbb678f (diff) | |
download | gcc-bb1353918c6c803b11a1d81a29c2cbd940a4d3e1.tar.gz |
2005-01-23 Paolo Carlini <pcarlini@suse.de>
* testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc: New.
* testsuite/27_io/basic_ostream/endl/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/ends/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/ends/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/4402.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/9555-oa.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/9555-oc.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9318-out.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9424-out.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9555-oo.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
error_failbit.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/put/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
2346-fstream.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
2346-sstream.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/write/wchar_t/1.cc: Likewise.
* testsuite/data/wostream_inserter_char-1.tst: Likewise.
* testsuite/data/wostream_inserter_char-1.txt: Likewise.
* testsuite/data/wostream_inserter_other-1.tst: Likewise.
* testsuite/data/wostream_inserter_other-2.tst: Likewise.
* testsuite/data/wostream_seeks-1.tst: Likewise.
* testsuite/27_io/basic_ostream/endl/char/1.cc: Minor tweaks.
* testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/4402.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
char/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
error_failbit.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/write/char/1.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94129 138bc75d-0d04-0410-961f-82ee72b054a4
75 files changed, 5762 insertions, 105 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f11dbc92c76..854c8c22ce1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,135 @@ 2005-01-23 Paolo Carlini <pcarlini@suse.de> + * testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc: New. + * testsuite/27_io/basic_ostream/endl/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/ends/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/ends/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/wchar_t/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/3.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/4402.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/5.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/6.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/9555-oa.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + wchar_t/exceptions_failbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/3.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/5.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/6.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + wchar_t/9555-oc.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/3.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/5.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/9318-out.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/9424-out.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/ + wchar_t/9555-oo.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ + error_failbit.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ + exceptions_failbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ + exceptions_null.cc: Likewise. + * testsuite/27_io/basic_ostream/put/char/1.cc: Likewise. + * testsuite/27_io/basic_ostream/put/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/seekp/char/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/seekp/wchar_t/ + 2346-fstream.cc: Likewise. + * testsuite/27_io/basic_ostream/seekp/wchar_t/ + 2346-sstream.cc: Likewise. + * testsuite/27_io/basic_ostream/seekp/wchar_t/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/tellp/wchar_t/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/write/wchar_t/1.cc: Likewise. + + * testsuite/data/wostream_inserter_char-1.tst: Likewise. + * testsuite/data/wostream_inserter_char-1.txt: Likewise. + * testsuite/data/wostream_inserter_other-1.tst: Likewise. + * testsuite/data/wostream_inserter_other-2.tst: Likewise. + * testsuite/data/wostream_seeks-1.tst: Likewise. + + * testsuite/27_io/basic_ostream/endl/char/1.cc: Minor tweaks. + * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise. + * testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/char/2.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/char/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/2.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/3.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/4402.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/5.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_arithmetic/ + char/6.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/ + char/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + 2.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + 5.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + error_failbit.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + exceptions_failbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/ + exceptions_null.cc: Likewise. + * testsuite/27_io/basic_ostream/put/char/1.cc: Likewise. + * testsuite/27_io/basic_ostream/seekp/char/ + exceptions_badbit_throw.cc: Likewise. + * testsuite/27_io/basic_ostream/sentry/char/2.cc: Likewise. + * testsuite/27_io/basic_ostream/write/char/1.cc: Likewise. + +2005-01-23 Paolo Carlini <pcarlini@suse.de> + * include/tr1/type_traits (aligned_storage): Use __aligned__ instead of aligned. diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc new file mode 100644 index 00000000000..38c5ee0ef7f --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc @@ -0,0 +1,44 @@ +// Copyright (C) 2005 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. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +// libstdc++/9827 +class Buf : public std::wstreambuf +{ +}; + +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + Buf buf; + wostream stream(&buf); + + stream << 1; + VERIFY(!stream.good()); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc index 762458512b1..e5cd1212d05 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc @@ -1,6 +1,6 @@ // 1999-07-22 bkoz -// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc. +// Copyright (C) 1994, 1999, 2000, 2003, 2005 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 @@ -30,7 +30,6 @@ void test01(void) const char str_lit01[] = " venice "; const std::string str01(" santa barbara "); - std::string str02(str_lit01); std::string str04; std::string str05; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc new file mode 100644 index 00000000000..67b594e18b5 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc @@ -0,0 +1,53 @@ +// Copyright (C) 2005 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.6.2.7 standard basic_ostream manipulators + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +void test01(void) +{ + bool test __attribute__((unused)) = true; + + const wchar_t str_lit01[] = L" venice "; + const std::wstring str01(L" santa barbara "); + std::wstring str04; + std::wstring str05; + + std::wostringstream oss01(str01); + std::wostringstream oss02; + typedef std::wostringstream::traits_type traits_type; + + // template<_CharT, _Traits> + // basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os) + oss01 << std::endl; + str04 = oss01.str(); + VERIFY( str04.size() == str01.size() ); + + oss02 << std::endl; + str05 = oss02.str(); + VERIFY( str05.size() == 1 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc index a6e8af845fc..5fa6ae24b99 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc @@ -1,6 +1,6 @@ // 1999-07-22 bkoz -// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc. +// Copyright (C) 1994, 1999, 2000, 2003, 2005 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 @@ -30,13 +30,11 @@ void test01(void) const char str_lit01[] = " venice "; const std::string str01(" santa barbara "); - std::string str02(str_lit01); std::string str04; std::string str05; std::ostringstream oss01(str01); std::ostringstream oss02; - typedef std::ostringstream::traits_type traits_type; // template<_CharT, _Traits> // basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os) diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc new file mode 100644 index 00000000000..d6feba135f4 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc @@ -0,0 +1,53 @@ +// Copyright (C) 2005 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.6.2.7 standard basic_ostream manipulators + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +void test01(void) +{ + bool test __attribute__((unused)) = true; + + const wchar_t str_lit01[] = L" venice "; + const std::wstring str01(L" santa barbara "); + std::wstring str04; + std::wstring str05; + + std::wostringstream oss01(str01); + std::wostringstream oss02; + + // template<_CharT, _Traits> + // basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os) + oss01 << std::ends; + str04 = oss01.str(); + VERIFY( str04.size() == str01.size() ); + + oss02 << std::ends; + str05 = oss02.str(); + VERIFY( str05.size() == 1 ); + VERIFY( str05[0] == wchar_t() ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc new file mode 100644 index 00000000000..b79ddce10a4 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc @@ -0,0 +1,62 @@ +// Copyright (C) 2005 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.6.2.7 standard basic_ostream manipulators + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// based vaguely on this: +// http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00109.html +void test02() +{ + using namespace std; + typedef wostringstream::int_type int_type; + + bool test __attribute__((unused)) = true; + wostringstream osst_01; + const wstring str_00(L"herbie_hancock"); + int_type len1 = str_00.size(); + osst_01 << str_00; + VERIFY( static_cast<int_type>(osst_01.str().size()) == len1 ); + + osst_01 << ends; + + const wstring str_01(L"speak like a child"); + int_type len2 = str_01.size(); + osst_01 << str_01; + int_type len3 = osst_01.str().size(); + VERIFY( len1 < len3 ); + VERIFY( len3 == len1 + len2 + 1 ); + + osst_01 << ends; + + const wstring str_02(L"+ inventions and dimensions"); + int_type len4 = str_02.size(); + osst_01 << str_02; + int_type len5 = osst_01.str().size(); + VERIFY( len3 < len5 ); + VERIFY( len5 == len3 + len4 + 1 ); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc index a1746fbc797..e7a7a5447b1 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc @@ -1,6 +1,6 @@ // 2003-03-08 Jerry Quinn <jlquinn@optonline.net> -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -27,10 +27,12 @@ struct foobar: std::exception { }; struct buf: std::streambuf { - virtual int_type overflow (int_type) { - throw foobar (); - return -1; - } + virtual int_type + overflow(int_type) + { + throw foobar(); + return int_type(); + } }; void test01() @@ -40,22 +42,25 @@ void test01() buf b; std::ostream strm (&b); - strm.exceptions (std::ios::badbit); + strm.exceptions(std::ios::badbit); - try { - strm << std::endl; - } - catch (foobar) { - // strm should throw foobar and not do anything else - VERIFY(strm.bad()); - return; - } - catch (...) { - VERIFY(false); - return; - } + try + { + strm << std::endl; + } + catch(foobar) + { + // strm should throw foobar and not do anything else + VERIFY(strm.bad()); + return; + } + catch(...) + { + VERIFY( false ); + return; + } - VERIFY(false); + VERIFY( false ); } int main() diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc new file mode 100644 index 00000000000..f8cc446ce93 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc @@ -0,0 +1,67 @@ +// Copyright (C) 2005 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. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +// libstdc++/9561 +struct foobar: std::exception { }; + +struct buf: std::wstreambuf +{ + virtual int_type + overflow(int_type) + { + throw foobar(); + return int_type(); + } +}; + +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + buf b; + std::wostream strm(&b); + strm.exceptions(std::wios::badbit); + + try + { + strm << std::endl; + } + catch(foobar) + { + // strm should throw foobar and not do anything else + VERIFY(strm.bad()); + return; + } + catch(...) + { + VERIFY( false ); + return; + } + VERIFY( false ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc index a59e2f7087d..01560589722 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc @@ -1,6 +1,6 @@ // 1999-07-22 bkoz -// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc. +// Copyright (C) 1994, 1999, 2000, 2003, 2005 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 @@ -30,13 +30,11 @@ void test01(void) const char str_lit01[] = " venice "; const std::string str01(" santa barbara "); - std::string str02(str_lit01); std::string str04; std::string str05; std::ostringstream oss01(str01); std::ostringstream oss02; - typedef std::ostringstream::traits_type traits_type; // template<_CharT, _Traits> // basic_ostream<_CharT, _Traits>& flush(basic_ostream<_Char, _Traits>& os) diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc index 2f031169790..9789d901d5a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc @@ -1,6 +1,6 @@ // 2003-09-22 Petur Runolfsson <peturr02@ru.is> -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -30,7 +30,7 @@ void test02() { - bool test = true; + bool test __attribute__((unused)) = true; __gnu_test::sync_streambuf buf; std::ostream os(&buf); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc index e8c5653189d..e434e2351e2 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -54,7 +54,7 @@ void test01() } catch (...) { - VERIFY(false); + VERIFY( false ); } } diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc new file mode 100644 index 00000000000..eaf603144a5 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc @@ -0,0 +1,52 @@ +// Copyright (C) 2005 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.6.2.7 standard basic_ostream manipulators + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +void test01(void) +{ + bool test __attribute__((unused)) = true; + + const wchar_t str_lit01[] = L" venice "; + const std::wstring str01(L" santa barbara "); + std::wstring str04; + std::wstring str05; + + std::wostringstream oss01(str01); + std::wostringstream oss02; + + // template<_CharT, _Traits> + // basic_ostream<_CharT, _Traits>& flush(basic_ostream<_Char, _Traits>& os) + oss01.flush(); + str04 = oss01.str(); + VERIFY( str04.size() == str01.size() ); + + oss02.flush(); + str05 = oss02.str(); + VERIFY( str05.size() == 0 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc new file mode 100644 index 00000000000..996941a44e5 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc @@ -0,0 +1,64 @@ +// Copyright (C) 2005 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.6.2.6 Unformatted output functions +// +// _GLIBCXX_RESOLVE_LIB_DEFECTS +// DR 60. What is a formatted input function? +// basic_ostream::flush() does not behave as an unformatted output function. + +#include <ostream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +void test02() +{ + bool test __attribute__((unused)) = true; + + __gnu_test::sync_wstreambuf buf; + std::wostream os(&buf); + + __gnu_test::sync_wstreambuf buf_tie; + std::wostream os_tie(&buf_tie); + + // No sentry should be constructed so os.tie()->flush() should not be + // called. + os.tie(&os_tie); + + os.flush(); + + VERIFY( os.good() ); + VERIFY( buf.sync_called() ); + VERIFY( !buf_tie.sync_called() ); + + // os.rdbuf()->pubsync() should be called even if !os.good(). + os.setstate(std::ios_base::eofbit); + + os.flush(); + + VERIFY( os.rdstate() == std::ios_base::eofbit ); + VERIFY( buf.sync_called() ); + VERIFY( !buf_tie.sync_called() ); +} + +int main() +{ + test02(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc new file mode 100644 index 00000000000..41ffc576118 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,66 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +using namespace std; + +void test01() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_wstreambuf bib; + wostream stream(&bib); + stream.exceptions(ios_base::badbit); + + try + { + stream.flush(); + VERIFY( false ); + } + catch (const __gnu_test::positioning_error&) + { + // stream should set badbit and rethrow facet_error. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); + } + catch (...) + { + VERIFY( false ); + } +} + +// libstdc++/9546 +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc index 0aa130af27e..5fde7e91b2e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -26,11 +26,10 @@ #include <limits> #include <testsuite_hooks.h> -using namespace std; - void test02() { + using namespace std; bool test __attribute__((unused)) = true; // Make sure we can output a long float in fixed format diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc index fed2696cc1b..58fa6c92cf2 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -23,16 +23,16 @@ #include <limits> #include <testsuite_hooks.h> -using namespace std; - template<typename T> bool test03_check(T n) { + using namespace std; + bool test __attribute__((unused)) = true; + stringbuf strbuf; ostream o(&strbuf); const char *expect; - bool test __attribute__((unused)) = true; if (numeric_limits<T>::digits + 1 == 16) expect = "177777 ffff"; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc index 304fc40c11f..77bf3a5a331 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -23,16 +23,16 @@ #include <sstream> #include <testsuite_hooks.h> -using namespace std; - // libstdc++/3655 int test04() { - stringbuf strbuf1, strbuf2; - ostream o1(&strbuf1), o2(&strbuf2); + using namespace std; bool test __attribute__((unused)) = true; + stringbuf strbuf1, strbuf2; + ostream o1(&strbuf1), o2(&strbuf2); + o1 << hex << showbase << setw(6) << internal << 0xff; VERIFY( strbuf1.str() == "0x ff" ); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc index 1d17b205717..68d9e506f9b 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -26,12 +26,12 @@ #include <limits> #include <testsuite_hooks.h> -using namespace std; - void test02() { + using namespace std; bool test __attribute__((unused)) = true; + // make sure we can output a very long float long double val = 1.2345678901234567890123456789e+1000L; int prec = numeric_limits<long double>::digits10; @@ -47,7 +47,7 @@ test02() cout << "expect: " << largebuf << endl; cout << "result: " << os.str() << endl; #endif - VERIFY(os && os.str() == largebuf); + VERIFY( os && os.str() == largebuf ); // Make sure we can output a long float in fixed format // without seg-faulting (libstdc++/4402) @@ -63,7 +63,7 @@ test02() cout << "expect: " << largebuf << endl; cout << "result: " << os2.str() << endl; #endif - VERIFY(os2 && os2.str() == largebuf); + VERIFY( os2 && os2.str() == largebuf ); } int diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc index ce521e235d4..4de6d6e62ca 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -25,12 +25,12 @@ #include <limits> #include <testsuite_hooks.h> -using namespace std; - void test05() { + using namespace std; bool test __attribute__((unused)) = true; + double pi = 3.14159265358979323846; ostringstream ostr; ostr.precision(20); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc index 36b67f2a0ba..07559fe9691 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc @@ -1,7 +1,7 @@ // 1999-11-15 Kevin Ediger <kediger@licor.com> // test the floating point inserters (facet num_put) -// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2002, 2003, 2005 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 @@ -25,13 +25,13 @@ #include <limits> #include <testsuite_hooks.h> -using namespace std; - // libstdc++/9151 -int +void test06() { + using namespace std; bool test __attribute__((unused)) = true; + int prec = numeric_limits<double>::digits10 + 2; double oval = numeric_limits<double>::min(); @@ -43,7 +43,6 @@ test06() double ival; istr >> ival; VERIFY( abs(oval-ival)/oval < DBL_EPSILON ); - return 0; } int diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc new file mode 100644 index 00000000000..4d5a4c4bb19 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc @@ -0,0 +1,53 @@ +// Copyright (C) 2005 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. + +#include <iostream> +#include <iomanip> +#include <locale> +#include <sstream> +#include <limits> +#include <testsuite_hooks.h> + +void +test02() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + // Make sure we can output a long float in fixed format + // without seg-faulting (libstdc++/4402) + double val2 = 3.5e230; + + wostringstream os2; + os2.precision(3); + os2.setf(wios::fixed); + + // Check it can be done in a locale with grouping on. + locale loc2 = __gnu_test::try_named_locale("de_DE"); + os2.imbue(loc2); + os2 << fixed << setprecision(3) << val2 << endl; + os2 << endl; + os2 << fixed << setprecision(1) << val2 << endl; +} + +int +main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc new file mode 100644 index 00000000000..0078c71e4d5 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc @@ -0,0 +1,66 @@ +// Copyright (C) 2005 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. + +#include <sstream> +#include <limits> +#include <testsuite_hooks.h> + +template<typename T> +bool +test03_check(T n) +{ + using namespace std; + bool test __attribute__((unused)) = true; + + wstringbuf strbuf; + wostream o(&strbuf); + const wchar_t *expect; + + if (numeric_limits<T>::digits + 1 == 16) + expect = L"177777 ffff"; + else if (numeric_limits<T>::digits + 1 == 32) + expect = L"37777777777 ffffffff"; + else if (numeric_limits<T>::digits + 1 == 64) + expect = L"1777777777777777777777 ffffffffffffffff"; + else + expect = L"wow, you've got some big numbers here"; + + o << oct << n << L' ' << hex << n; + VERIFY ( strbuf.str() == expect ); + + return test; +} + +void +test03() +{ + short s = -1; + int i = -1; + long l = -1; + + test03_check(s); + test03_check(i); + test03_check(l); +} + +int +main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc new file mode 100644 index 00000000000..4ad87a5372b --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc @@ -0,0 +1,48 @@ +// Copyright (C) 2005 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. + +#include <iomanip> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/3655 +int +test04() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + wstringbuf strbuf1, strbuf2; + wostream o1(&strbuf1), o2(&strbuf2); + + o1 << hex << showbase << setw(6) << internal << 0xff; + VERIFY( strbuf1.str() == L"0x ff" ); + + // ... vs internal-adjusted const char*-type objects + o2 << hex << showbase << setw(6) << internal << L"0xff"; + VERIFY( strbuf2.str() == L" 0xff" ); + + return 0; +} + +int +main() +{ + test04(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc new file mode 100644 index 00000000000..e2db338e6a6 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc @@ -0,0 +1,71 @@ +// Copyright (C) 2005 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. + +#include <cstdio> // for swprintf +#include <iostream> +#include <iomanip> +#include <sstream> +#include <limits> +#include <testsuite_hooks.h> + +void +test02() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + // make sure we can output a very long float + long double val = 1.2345678901234567890123456789e+1000L; + int prec = numeric_limits<long double>::digits10; + + wostringstream os; + os.precision(prec); + os.setf(wios::scientific); + os << val; + + wchar_t largebuf[512]; + swprintf(largebuf, 512, L"%.*Le", prec, val); +#ifdef TEST_NUMPUT_VERBOSE + cout << "expect: " << largebuf << endl; + cout << "result: " << os.str() << endl; +#endif + VERIFY( os && os.str() == largebuf ); + + // Make sure we can output a long float in fixed format + // without seg-faulting (libstdc++/4402) + double val2 = 3.5e230; + + wostringstream os2; + os2.precision(3); + os2.setf(wios::fixed); + os2 << val2; + + swprintf(largebuf, 512, L"%.*f", 3, val2); +#ifdef TEST_NUMPUT_VERBOSE + cout << "expect: " << largebuf << endl; + cout << "result: " << os2.str() << endl; +#endif + VERIFY( os2 && os2.str() == largebuf ); +} + +int +main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc new file mode 100644 index 00000000000..7284c5e9670 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc @@ -0,0 +1,47 @@ +// Copyright (C) 2005 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. + +#include <cmath> // for abs +#include <cfloat> // for DBL_EPSILON +#include <sstream> +#include <limits> +#include <testsuite_hooks.h> + +void +test05() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + double pi = 3.14159265358979323846; + wostringstream ostr; + ostr.precision(20); + ostr << pi; + wstring sval = ostr.str(); + wistringstream istr(sval); + double d; + istr >> d; + VERIFY( abs(pi-d)/pi < DBL_EPSILON ); +} + +int +main() +{ + test05(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc new file mode 100644 index 00000000000..4129ca93325 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc @@ -0,0 +1,50 @@ +// Copyright (C) 2005 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. + +#include <cmath> // for abs +#include <cfloat> // for DBL_EPSILON +#include <sstream> +#include <limits> +#include <testsuite_hooks.h> + +// libstdc++/9151 +void +test06() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + int prec = numeric_limits<double>::digits10 + 2; + double oval = numeric_limits<double>::min(); + + wstringstream ostr; + ostr.precision(prec); + ostr << oval; + wstring sval = ostr.str(); + wistringstream istr(sval); + double ival; + istr >> ival; + VERIFY( abs(oval-ival)/oval < DBL_EPSILON ); +} + +int +main() +{ + test06(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc new file mode 100644 index 00000000000..f2e830b1338 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc @@ -0,0 +1,86 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +struct buf: std::wstreambuf +{ + virtual int_type overflow(int_type) + { throw 0; } +}; + +template<typename T> +void testthrow(T arg) +{ + bool test __attribute__((unused)) = true; + buf b; + std::wostream os(&b); + os.exceptions(std::wios::badbit); + + try + { + os << arg; + } + catch(int) + { + // Expected return is zero. + VERIFY( os.bad() ); + } + catch(...) + { + VERIFY( false ); + } +} + +int main() +{ + bool b = true; + short s = -4; + unsigned short us = 4; + int i = -45; + unsigned int ui = 45; + long l = -456; + unsigned long ul = 456; + float f = 3.4; + double d = 3.45; + long double ld = 3.456; + + testthrow(b); + testthrow(s); + testthrow(us); + testthrow(i); + testthrow(ui); + testthrow(l); + testthrow(ul); + testthrow(f); + testthrow(d); + testthrow(ld); + + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc new file mode 100644 index 00000000000..3c36f0300c1 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,72 @@ +// Copyright (C) 2005 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. + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +// libstdc++/9561 +template<typename T> +void test_badbit() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + locale loc(locale::classic(), new __gnu_test::fail_num_put_wchar_t); + wostringstream stream(L"jaylib - champion sound"); + stream.imbue(loc); + + stream.exceptions(ios_base::badbit); + VERIFY( stream.rdstate() == ios_base::goodbit ); + + try + { + T i = T(); + stream << i; + VERIFY( false ); + } + catch (const __gnu_test::facet_error&) + { + // stream should set badbit and rethrow facet_error. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); + } + catch (...) + { + VERIFY( false ); + } +} + + +int main() +{ + test_badbit<bool>(); + test_badbit<short>(); + test_badbit<unsigned short>(); + test_badbit<int>(); + test_badbit<unsigned int>(); + test_badbit<long>(); + test_badbit<unsigned long>(); + + test_badbit<float>(); + test_badbit<double>(); + + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc new file mode 100644 index 00000000000..6211a9cd421 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc @@ -0,0 +1,75 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +// libstdc++/10093 +template<typename T> +void test_failbit() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + locale loc(locale::classic(), new __gnu_test::fail_num_put_wchar_t); + wostringstream stream(L"jaylib - champion sound"); + stream.imbue(loc); + + stream.exceptions(ios_base::failbit); + + try + { + T i = T(); + stream << i; + } + catch (const ios_base::failure&) + { VERIFY( false ); } + catch(...) + { VERIFY( false ); } + + // stream should set badbit. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); +} + +int main() +{ + test_failbit<bool>(); + test_failbit<short>(); + test_failbit<unsigned short>(); + test_failbit<int>(); + test_failbit<unsigned int>(); + test_failbit<long>(); + test_failbit<unsigned long>(); + + test_failbit<float>(); + test_failbit<double>(); + + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc index e04358067d3..1d7a3a2e6ce 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc @@ -1,6 +1,6 @@ // 1999-08-16 bkoz -// Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation +// Copyright (C) 1999, 2000, 2002, 2003, 2005 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 @@ -31,12 +31,9 @@ test04() { bool test __attribute__((unused)) = true; std::string str_01; - const std::string str_02("coltrane playing 'softly as a morning sunrise'"); - const std::string str_03("coltrane"); std::string str_tmp; const int i_max=250; - std::ostringstream oss_01(std::ios_base::out); std::ostringstream oss_02(str_01, std::ios_base::out); std::ios_base::iostate statefail; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc new file mode 100644 index 00000000000..0a0c88d3f5f --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc @@ -0,0 +1,56 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <fstream> +#include <testsuite_hooks.h> + +// ofstream +void test01() +{ + std::wstring str01; + const int size = 1000; + const char name_02[] = "wostream_inserter_char-1.txt"; + + // initialize string + for(int i=0 ; i < size; i++) { + str01 += L'1'; + str01 += L'2'; + str01 += L'3'; + str01 += L'4'; + str01 += L'5'; + str01 += L'6'; + str01 += L'7'; + str01 += L'8'; + str01 += L'9'; + str01 += L'\n'; + } + std::wofstream f(name_02); + + f << str01; + f.close(); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc new file mode 100644 index 00000000000..a39526b70da --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc @@ -0,0 +1,66 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// ostringstream width() != zero +// left +void +test02(void) +{ + bool test __attribute__((unused)) = true; + std::wstring tmp; + + std::wstring str01 = L""; + std::wostringstream oss01; + oss01.width(5); + oss01.fill(L'0'); + oss01.flags(std::ios_base::left); + oss01 << str01; + tmp = oss01.str(); + VERIFY( tmp == L"00000" ); + + std::wstring str02 = L"1"; + std::wostringstream oss02; + oss02.width(5); + oss02.fill(L'0'); + oss02.flags(std::ios_base::left); + oss02 << str02; + tmp = oss02.str(); + VERIFY( tmp == L"10000" ); + + std::wstring str03 = L"909909"; + std::wostringstream oss03; + oss03.width(5); + oss03.fill(L'0'); + oss03.flags(std::ios_base::left); + oss03 << str03; + tmp = oss03.str(); + VERIFY( tmp == L"909909" ); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc new file mode 100644 index 00000000000..dc0f9dc9b93 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc @@ -0,0 +1,65 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// width() != zero +// right +void test03(void) +{ + bool test __attribute__((unused)) = true; + std::wstring tmp; + + std::wstring str01 = L""; + std::wostringstream oss01; + oss01.width(5); + oss01.fill(L'0'); + oss01.flags(std::ios_base::right); + oss01 << str01; + tmp = oss01.str(); + VERIFY( tmp == L"00000" ); + + std::wstring str02 = L"1"; + std::wostringstream oss02; + oss02.width(5); + oss02.fill(L'0'); + oss02.flags(std::ios_base::right); + oss02 << str02; + tmp = oss02.str(); + VERIFY( tmp == L"00001" ); + + std::wstring str03 = L"909909"; + std::wostringstream oss03; + oss03.width(5); + oss03.fill(L'0'); + oss03.flags(std::ios_base::right); + oss03 << str03; + tmp = oss03.str(); + VERIFY( tmp == L"909909" ); +} + +int main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc new file mode 100644 index 00000000000..50279859505 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc @@ -0,0 +1,57 @@ +// 1999-08-16 bkoz + +// Copyright (C) 1999, 2000, 2002, 2003 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// stringstream and large strings +void +test04() +{ + bool test __attribute__((unused)) = true; + std::wstring str_01; + std::wstring str_tmp; + const int i_max=250; + + std::wostringstream oss_02(str_01, std::ios_base::out); + + std::ios_base::iostate statefail; + statefail = std::ios_base::failbit; + + // template<_CharT, _Traits> + // basic_ostream& operator<<(ostream&, const wchar_t*) + for (int i = 0; i < i_max; ++i) + oss_02 << L"Test: " << i << std::endl; + str_tmp = oss_02.str(); + VERIFY( !oss_02.bad() ); + VERIFY( oss_02.good() ); + VERIFY( str_tmp != str_01 ); + VERIFY( str_tmp.size() == 2390 ); +} + +int main() +{ + test04(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc new file mode 100644 index 00000000000..596b9ce9c97 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc @@ -0,0 +1,75 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// ostringstream and large strings number 2 +void +test05() +{ + bool test __attribute__((unused)) = true; + std::wstring str05, str10; + + typedef std::wostream::pos_type pos_type; + typedef std::wostream::off_type off_type; + std::wstring str01; + const int size = 1000; + + // initialize string + for(int i=0 ; i < size; i++) { + str01 += L'1'; + str01 += L'2'; + str01 += L'3'; + str01 += L'4'; + str01 += L'5'; + str01 += L'6'; + str01 += L'7'; + str01 += L'8'; + str01 += L'9'; + str01 += L'\n'; + } + + // test 1: out + std::wostringstream sstr01(str01, std::ios_base::out); + std::wostringstream sstr02; + sstr02 << str01; + str05 = sstr01.str(); + str10 = sstr02.str(); + VERIFY( str05 == str01 ); + VERIFY( str10 == str01 ); + + // test 2: in | out + std::wostringstream sstr04(str01, std::ios_base::out | std::ios_base::in); + std::wostringstream sstr05(std::ios_base::in | std::ios_base::out); + sstr05 << str01; + str05 = sstr04.str(); + str10 = sstr05.str(); + VERIFY( str05 == str01 ); + VERIFY( str10 == str01 ); +} + +int main() +{ + test05(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc new file mode 100644 index 00000000000..4b05cca7433 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc @@ -0,0 +1,56 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <string> +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// ostringstream and positioning, multiple writes +// http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00326.html +void test06() +{ + bool test __attribute__((unused)) = true; + const wchar_t carray01[] = L"mos def & talib kweli are black star"; + + // normal + std::wostringstream ostr1(L"mos def"); + VERIFY( ostr1.str() == L"mos def" ); + ostr1 << L" & talib kweli"; // should overwrite first part of buffer + VERIFY( ostr1.str() == L" & talib kweli" ); + ostr1 << L" are black star"; // should append to string from above + VERIFY( ostr1.str() != carray01 ); + VERIFY( ostr1.str() == L" & talib kweli are black star" ); + + // appending + std::wostringstream ostr2(L"blackalicious", + std::ios_base::out | std::ios_base::ate); + VERIFY( ostr2.str() == L"blackalicious" ); + ostr2 << L" NIA "; // should not overwrite first part of buffer + VERIFY( ostr2.str() == L"blackalicious NIA " ); + ostr2 << L"4: deception (5:19)"; // should append to full string from above + VERIFY( ostr2.str() == L"blackalicious NIA 4: deception (5:19)" ); +} + +int main() +{ + test06(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc new file mode 100644 index 00000000000..cc82e681873 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc @@ -0,0 +1,70 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +struct buf: std::wstreambuf +{ + virtual int_type overflow(int_type) + { throw 0; } +}; + +template<typename T> +void testthrow(T arg) +{ + bool test __attribute__((unused)) = true; + buf b; + std::wostream os(&b); + os.exceptions(std::wios::badbit); + + try + { + os << arg; + } + catch(int) + { + // Expected return is zero. + VERIFY( os.bad() ); + } + catch(...) + { + VERIFY( false ); + } +} + +int main() +{ + wchar_t c = L'a'; + const wchar_t* ccp = L"governor ann richards"; + + testthrow(c); + testthrow(ccp); + + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc index d14e2fc52c4..237f4404b8f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc @@ -1,7 +1,7 @@ // 1999-08-16 bkoz // 1999-11-01 bkoz -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 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 @@ -49,12 +49,12 @@ test03(void) ifstream in(TEST_IN); ofstream out(TEST_OUT); out << in.rdbuf(); - in.seekg(0,ios_base::beg); - out.seekp(0,ios_base::beg); + in.seekg(0, ios_base::beg); + out.seekp(0, ios_base::beg); rs = in.tellg(); ws = out.tellp(); - in.seekg(0,ios_base::end); - out.seekp(0,ios_base::end); + in.seekg(0, ios_base::end); + out.seekp(0, ios_base::end); i_read = in.tellg() - rs; i_wrote = out.tellp() - ws; in.close(); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc index d905875d340..4aae9bb316f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc @@ -41,7 +41,7 @@ std::ios_base& func3(std::ios_base&) template<typename T> void test(T& (*f)(T&)) { - bool test = true; + bool test __attribute__((unused)) = true; __gnu_test::sync_streambuf buf; std::ostream os(&buf); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc index ce47b6f3989..3616f449945 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc @@ -42,8 +42,8 @@ void test5() stream << &sbuf; - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } void test7() @@ -54,8 +54,8 @@ void test7() stream << &bib; - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } // libstdc++/9371 diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc index 13ff248940b..b5c235e41c3 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc @@ -48,8 +48,8 @@ void test13() catch (...) { VERIFY(false); } - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } void test15() @@ -66,8 +66,8 @@ void test15() catch (...) { VERIFY(false); } - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } // libstdc++/9371 diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc index 5abaf92b804..0f7d3fbf142 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -44,17 +44,17 @@ void test9() try { stream << &sbuf; - VERIFY(false); + VERIFY( false ); } catch (ios_base::failure&) - { VERIFY(false); } + { VERIFY( false ); } catch (__gnu_test::overflow_error&) { } catch (...) - { VERIFY(false); } + { VERIFY( false ); } - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } void test11() @@ -67,17 +67,17 @@ void test11() try { stream << &bib; - VERIFY(false); + VERIFY( false ); } catch (ios_base::failure&) - { VERIFY(false); } + { VERIFY( false ); } catch (__gnu_test::underflow_error&) { } catch (...) - { VERIFY(false); } + { VERIFY( false ); } - VERIFY(stream.rdstate() & ios_base::failbit); - VERIFY((stream.rdstate() & ios_base::badbit) == 0); + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); } // libstdc++/9371 diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc index 3f2de4d683b..3d248bce589 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -31,32 +31,34 @@ #include <sstream> #include <testsuite_hooks.h> -using namespace std; - void test1() { + using namespace std; bool test __attribute__((unused)) = true; + ostringstream stream; stream << static_cast<streambuf*>(NULL); - VERIFY(stream.rdstate() & ios_base::badbit); + VERIFY( stream.rdstate() & ios_base::badbit ); } void test3() { + using namespace std; bool test __attribute__((unused)) = true; + ostringstream stream; stream.exceptions(ios_base::badbit); try { stream << static_cast<streambuf*>(NULL); - VERIFY(false); + VERIFY( false ); } catch (ios_base::failure&) { } - VERIFY(stream.rdstate() & ios_base::badbit); + VERIFY( stream.rdstate() & ios_base::badbit ); } // libstdc++/9371 diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc new file mode 100644 index 00000000000..88ae7aa3130 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc @@ -0,0 +1,79 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters +// @require@ %-*.tst %-*.txt +// @diff@ %-*.tst %-*.txt + +#include <ostream> +#include <sstream> +#include <fstream> +#include <testsuite_hooks.h> + +const int size = 1000; +const char name_01[] = "wostream_inserter_other-1.tst"; +const char name_02[] = "wostream_inserter_other-1.txt"; +const char name_03[] = "wostream_inserter_other-2.tst"; +const char name_04[] = "wostream_inserter_other-2.txt"; + +// fstream +void +test02() +{ + typedef std::ios_base::iostate iostate; + bool test __attribute__((unused)) = true; + + // basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sb) + // filebuf-> NULL + std::wifstream f_in1(name_01); + std::wofstream f_out1(name_02); + std::wstringbuf* strbuf01 = NULL; + iostate state01 = f_in1.rdstate(); + f_in1 >> strbuf01; + iostate state02 = f_in1.rdstate(); + VERIFY( state01 != state02 ); + VERIFY( (state02 & std::ios_base::failbit) != 0 ); + state01 = f_out1.rdstate(); + f_out1 << strbuf01; + state02 = f_out1.rdstate(); + VERIFY( state01 != state02 ); + VERIFY( (state02 & std::ios_base::badbit) != 0 ); + + // filebuf->filebuf + std::wifstream f_in(name_01); + std::wofstream f_out(name_02); + f_out << f_in.rdbuf(); + f_in.close(); + f_out.close(); + + // filebuf->stringbuf->filebuf + std::wifstream f_in2(name_03); + std::wofstream f_out2(name_04); // should be different name + std::wstringbuf strbuf02; + f_in2 >> &strbuf02; + f_out2 << &strbuf02; + f_in2.close(); + f_out2.close(); +} + +int +main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc new file mode 100644 index 00000000000..626d45c9f35 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc @@ -0,0 +1,66 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters +// @require@ %-*.tst %-*.txt +// @diff@ %-*.tst %-*.txt + +#include <ostream> +#include <fstream> +#include <testsuite_hooks.h> + +// via Brent Verner <brent@rcfile.org> +// http://gcc.gnu.org/ml/libstdc++/2000-06/msg00005.html +void +test03(void) +{ + using namespace std; + + typedef wios::pos_type pos_type; + + const char* TEST_IN = "wostream_inserter_other_in"; + const char* TEST_OUT = "wostream_inserter_other_out"; + pos_type i_read, i_wrote, rs, ws; + double tf_size = BUFSIZ * 2.5; + ofstream testfile(TEST_IN); + + for (int i = 0; i < tf_size; ++i) + testfile.put(L'.'); + testfile.close(); + + wifstream in(TEST_IN); + wofstream out(TEST_OUT); + out << in.rdbuf(); + in.seekg(0, ios_base::beg); + out.seekp(0, ios_base::beg); + rs = in.tellg(); + ws = out.tellp(); + in.seekg(0, ios_base::end); + out.seekp(0, ios_base::end); + i_read = in.tellg() - rs; + i_wrote = out.tellp() - ws; + in.close(); + out.close(); +} + +int +main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc new file mode 100644 index 00000000000..d43a8876a0a --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc @@ -0,0 +1,45 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/3272 +void test04() +{ + using namespace std; + bool test __attribute__((unused)) = true; + wistringstream istr(L"inside betty carter"); + wostringstream ostr; + ostr << istr.rdbuf() << endl; + + if (ostr.rdstate() & ios_base::eofbit) + test = false; + + VERIFY( test ); +} + +int +main() +{ + test04(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc new file mode 100644 index 00000000000..049a3b0fe1d --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc @@ -0,0 +1,185 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.4 basic_ostream character inserters + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +class test_buffer_1 : public std::wstreambuf +{ +public: + test_buffer_1(const std::wstring& s) + : str(s), it(str.begin()) { } + +protected: + virtual int_type + underflow() + { return (it != str.end() ? *it : WEOF); } + + virtual int_type + uflow() + { return (it != str.end() ? *it++ : WEOF); } + +private: + const std::wstring str; + std::wstring::const_iterator it; +}; + + +class test_buffer_2 : public std::wstreambuf +{ +public: + test_buffer_2(const std::wstring& s) + : str(s), it(str.begin()) { } + +protected: + virtual int_type + underflow() + { return (it != str.end() ? *it : WEOF); } + + virtual int_type + uflow() + { return (it != str.end() ? *it++ : WEOF); } + + virtual std::streamsize + showmanyc() + { return std::distance(it, str.end()); } + +private: + const std::wstring str; + std::wstring::const_iterator it; +}; + + +class test_buffer_3 : public std::wstreambuf +{ +public: + test_buffer_3(const std::wstring& s) + : str(s), it(str.begin()) { } + +protected: + virtual int_type + underflow() + { return (it != str.end() ? *it : WEOF); } + + virtual int_type + uflow() + { return (it != str.end() ? *it++ : WEOF); } + + virtual std::streamsize + showmanyc() + { + std::streamsize ret = std::distance(it, str.end()); + return ret > 0 ? ret : -1; + } + +private: + const std::wstring str; + std::wstring::const_iterator it; +}; + +class test_buffer_4 : public std::wstreambuf +{ +public: + test_buffer_4(const std::wstring& s) + : str(s), it(str.begin()) + { + if (it != str.end()) + { + buf[0] = *it++; + setg(buf, buf, buf+1); + } + } + +protected: + virtual int_type + underflow() + { return (it != str.end() ? *it : WEOF); } + + virtual int_type + uflow() + { return (it != str.end() ? *it++ : WEOF); } + + virtual std::streamsize + showmanyc() + { + std::streamsize ret = std::distance(it, str.end()); + return ret > 0 ? ret : -1; + } + +private: + const std::wstring str; + std::wstring::const_iterator it; + wchar_t buf[1]; +}; + +void test(const std::wstring& str, std::wstreambuf& buf) +{ + bool test __attribute__((unused)) = true; + + std::wostringstream out; + std::wistream in(&buf); + + out << in.rdbuf(); + + if (out.str() != str) + VERIFY( false ); +} + +// libstdc++/6745 +// libstdc++/8071 +// libstdc++/8127 +// Jonathan Lennox <lennox@cs.columbia.edu> +void test05() +{ + std::wstring string_a(L"Hello, world!"); + std::wstring string_b(L""); + + test_buffer_1 buf1a(string_a); + test_buffer_1 buf1b(string_b); + + test_buffer_2 buf2a(string_a); + test_buffer_2 buf2b(string_b); + + test_buffer_3 buf3a(string_a); + test_buffer_3 buf3b(string_b); + + test_buffer_4 buf4a(string_a); + test_buffer_4 buf4b(string_b); + + test(string_a, buf1a); + test(string_b, buf1b); + + test(string_a, buf2a); + test(string_b, buf2b); + + test(string_a, buf3a); + test(string_b, buf3b); + + test(string_a, buf4a); + test(string_b, buf4b); +} + +int +main() +{ + test05(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc new file mode 100644 index 00000000000..99a77dde829 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc @@ -0,0 +1,97 @@ +// Copyright (C) 2005 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 +// 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.6.2.5.3 basic_ostream manipulator inserters +// +// _GLIBCXX_RESOLVE_LIB_DEFECTS +// DR 60. What is a formatted input function? +// Inserters for manipulators do not behave as formatted output functions. + +#include <ostream> +#include <stdexcept> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +std::wostream& func1(std::wostream&) +{ throw std::runtime_error(""); } + +std::wios& func2(std::wios&) +{ throw std::runtime_error(""); } + +std::ios_base& func3(std::ios_base&) +{ throw std::runtime_error(""); } + +template<typename T> +void test(T& (*f)(T&)) +{ + bool test __attribute__((unused)) = true; + + __gnu_test::sync_wstreambuf buf; + std::wostream os(&buf); + + __gnu_test::sync_wstreambuf buf_tie; + std::wostream os_tie(&buf_tie); + + // No sentry should be constructed so os.tie()->flush() should not be + // called. + os.tie(&os_tie); + + try + { + os << f; + // Exceptions thrown by f should not be caught + VERIFY( false ); + } + catch (std::runtime_error&) + { + } + + // Exceptions thrown by f should not cause badbit to be set + VERIFY( os.good() ); + VERIFY( !buf_tie.sync_called() ); + + // The manipulator should be called even if !os.good(). + os.setstate(std::ios_base::eofbit); + + try + { + os << f; + // Exceptions thrown by f should not be caught + VERIFY( false ); + } + catch (std::runtime_error&) + { + } + + // Exceptions thrown by f should not cause badbit to be set + VERIFY( os.rdstate() == std::ios_base::eofbit ); + VERIFY( !buf_tie.sync_called() ); +} + +void test05() +{ + test(&func1); + test(&func2); + test(&func3); +} + +int main() +{ + test05(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc new file mode 100644 index 00000000000..3685e1fbcae --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc @@ -0,0 +1,72 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.5.2 template class basic_streambuf + +#include <streambuf> +#include <sstream> +#include <ostream> +#include <testsuite_hooks.h> + +// libstdc++/9318 +class Outbuf : public std::wstreambuf +{ +public: + typedef std::wstreambuf::traits_type traits_type; + + std::wstring result() const { return str; } + +protected: + virtual int_type + overflow(int_type c = traits_type::eof()) + { + if (!traits_type::eq_int_type(c, traits_type::eof())) + str.push_back(traits_type::to_char_type(c)); + return traits_type::not_eof(c); + } + +private: + std::wstring str; +}; + +void test10() +{ + bool test __attribute__((unused)) = true; + + std::wstringbuf sbuf(L"Bad Moon Rising", std::wios::in); + Outbuf buf; + std::wostream stream(&buf); + stream << &sbuf; + + VERIFY( buf.result() == L"Bad Moon Rising" ); +} + +int main() +{ + test10(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc new file mode 100644 index 00000000000..77b784d01d2 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc @@ -0,0 +1,113 @@ +// 1999-10-11 bkoz + +// Copyright (C) 1999, 2000, 2001, 2002, 2003 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.5.2 template class basic_streambuf + +#include <cwchar> +#include <streambuf> +#include <sstream> +#include <ostream> +#include <testsuite_hooks.h> + +// libstdc++/9424 +class Outbuf_2 : public std::wstreambuf +{ + wchar_t buf[1]; + +public: + Outbuf_2() + { + setp(buf, buf + 1); + } + + int_type overflow(int_type c) + { + int_type eof = traits_type::eof(); + + if (pptr() < epptr()) + { + if (traits_type::eq_int_type(c, eof)) + return traits_type::not_eof(c); + + *pptr() = traits_type::to_char_type(c); + pbump(1); + return c; + } + + return eof; + } +}; + +class Inbuf_2 : public std::wstreambuf +{ + static const wchar_t buf[]; + const wchar_t* current; + int size; + +public: + Inbuf_2() + { + current = buf; + size = std::wcslen(buf); + } + + int_type underflow() + { + if (current < buf + size) + return traits_type::to_int_type(*current); + return traits_type::eof(); + } + + int_type uflow() + { + if (current < buf + size) + return traits_type::to_int_type(*current++); + return traits_type::eof(); + } +}; + +const wchar_t Inbuf_2::buf[] = L"Atteivlis"; + +void test12() +{ + bool test __attribute__((unused)) = true; + + Outbuf_2 outbuf2; + std::wostream os (&outbuf2); + Inbuf_2 inbuf2; + os << &inbuf2; + VERIFY( inbuf2.sgetc() == L't' ); + VERIFY( os.good() ); +} + +int main() +{ + test12(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc new file mode 100644 index 00000000000..ce4a6d9a730 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc @@ -0,0 +1,68 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +struct buf: std::wstreambuf +{ + virtual int_type overflow(int_type) + { throw 0; } +}; + +template<typename T> +void testthrow(T arg) +{ + bool test __attribute__((unused)) = true; + buf b; + std::wostream os(&b); + os.exceptions(std::wios::badbit); + + try + { + os << arg; + } + catch(int) + { + // Expected return is zero. + VERIFY( os.bad() ); + } + catch(...) + { + VERIFY( false ); + } +} + +int main() +{ + buf b; + + testthrow(&b); + + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc new file mode 100644 index 00000000000..16f37a78907 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc @@ -0,0 +1,67 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +using namespace std; + +void test5() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_wstreambuf bob; + wostream stream(&bob); + wstringbuf sbuf(L"Foo, bar, qux", ios_base::in); + + stream << &sbuf; + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +void test7() +{ + bool test __attribute__((unused)) = true; + wostringstream stream; + __gnu_test::fail_wstreambuf bib; + + stream << &bib; + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +// libstdc++/9371 +int main() +{ + test5(); + test7(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc new file mode 100644 index 00000000000..3620d12e46d --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,79 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +using namespace std; + +void test13() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_wstreambuf bob; + wostream stream(&bob); + stream.exceptions(ios_base::badbit); + wstringbuf sbuf(L"Foo, bar, qux", ios_base::in); + + try + { + stream << &sbuf; + } + catch (...) + { VERIFY(false); } + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +void test15() +{ + bool test __attribute__((unused)) = true; + wostringstream stream; + stream.exceptions(ios_base::badbit); + __gnu_test::fail_wstreambuf bib; + + try + { + stream << &bib; + } + catch (...) + { VERIFY(false); } + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +// libstdc++/9371 +int main() +{ + test13(); + test15(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc new file mode 100644 index 00000000000..bd2c7d8017b --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc @@ -0,0 +1,89 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +using namespace std; + +void test9() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_wstreambuf bob; + wostream stream(&bob); + stream.exceptions(ios_base::failbit); + wstringbuf sbuf(L"Foo, bar, qux", ios_base::in); + + try + { + stream << &sbuf; + VERIFY( false ); + } + catch (ios_base::failure&) + { VERIFY( false ); } + catch (__gnu_test::overflow_error&) + { } + catch (...) + { VERIFY( false ); } + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +void test11() +{ + bool test __attribute__((unused)) = true; + wostringstream stream; + stream.exceptions(ios_base::failbit); + __gnu_test::fail_wstreambuf bib; + + try + { + stream << &bib; + VERIFY( false ); + } + catch (ios_base::failure&) + { VERIFY( false ); } + catch (__gnu_test::underflow_error&) + { } + catch (...) + { VERIFY( false ); } + + VERIFY( stream.rdstate() & ios_base::failbit ); + VERIFY( (stream.rdstate() & ios_base::badbit) == 0 ); +} + +// libstdc++/9371 +int main() +{ + test9(); + test11(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc new file mode 100644 index 00000000000..d3361077942 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc @@ -0,0 +1,70 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <istream> +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> + +void test1() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + wostringstream stream; + stream << static_cast<wstreambuf*>(NULL); + VERIFY( stream.rdstate() & ios_base::badbit ); +} + +void test3() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + wostringstream stream; + stream.exceptions(ios_base::badbit); + + try + { + stream << static_cast<wstreambuf*>(NULL); + VERIFY( false ); + } + catch (ios_base::failure&) + { + } + + VERIFY( stream.rdstate() & ios_base::badbit ); +} + +// libstdc++/9371 +int main() +{ + test1(); + test3(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc index df396e5f067..b0b6ca4e018 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc @@ -1,6 +1,6 @@ // 2003-09-22 Petur Runolfsson <peturr02@ru.is> -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -34,13 +34,14 @@ class Buf : public std::streambuf { protected: - virtual int_type overflow(int_type = traits_type::eof()) + virtual int_type + overflow(int_type = traits_type::eof()) { throw 0; } }; void test01() { - bool test = true; + bool test __attribute__((unused)) = true; Buf buf; std::ostream os(&buf); diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc new file mode 100644 index 00000000000..3dee44f1de1 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc @@ -0,0 +1,71 @@ +// Copyright (C) 2005 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.6.2.6 Unformatted output functions +// +// _GLIBCXX_RESOLVE_LIB_DEFECTS +// DR 60. What is a formatted input function? +// basic_ostream::put(char_type) is an unformatted output function. +// DR 63. Exception-handling policy for unformatted output. +// Unformatted output functions should catch exceptions thrown +// from streambuf members. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +class Buf : public std::wstreambuf +{ +protected: + virtual int_type + overflow(int_type = traits_type::eof()) + { throw 0; } +}; + +void test01() +{ + bool test __attribute__((unused)) = true; + + Buf buf; + std::wostream os(&buf); + + VERIFY( os.good() ); + + os.put(L'a'); + + VERIFY( os.rdstate() == std::ios_base::badbit ); + + os.clear(); + os.exceptions(std::ios_base::badbit); + + try + { + os.put(L'b'); + VERIFY( false ); + } + catch (int) + { + VERIFY( os.rdstate() == std::ios_base::badbit ); + } +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc index eba317456c7..eda703fb4fd 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2003, 2004, 2005 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 @@ -31,11 +31,11 @@ #include <testsuite_hooks.h> #include <testsuite_io.h> -using namespace std; - void test01() { + using namespace std; bool test __attribute__((unused)) = true; + __gnu_test::fail_streambuf bib; ostream stream(&bib); stream.exceptions(ios_base::badbit); @@ -56,13 +56,15 @@ void test01() } catch (...) { - VERIFY(false); + VERIFY( false ); } } void test02() { + using namespace std; bool test __attribute__((unused)) = true; + __gnu_test::fail_streambuf bib; ostream stream(&bib); stream.exceptions(ios_base::badbit); @@ -83,7 +85,7 @@ void test02() } catch (...) { - VERIFY(false); + VERIFY( false ); } } diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc new file mode 100644 index 00000000000..4143bd0e220 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc @@ -0,0 +1,87 @@ +// Copyright (C) 2005 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 +// 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.6.2.4 basic_ostream seek members [lib.ostream.seeks] +// @require@ %-*.tst %-*.txt +// @diff@ %-*.tst %-*.txt + +#include <ostream> +#include <istream> +#include <fstream> +#include <testsuite_hooks.h> + +const wchar_t* s = L" lootpack, peanut butter wolf, rob swift, madlib, quasimoto"; +const int times = 10; + +void write_rewind(std::wiostream& stream) +{ + bool test __attribute__((unused)) = true; + + for (int j = 0; j < times; j++) + { + std::streampos begin = stream.tellp(); + + for (int i = 0; i < times; ++i) + stream << j << L'-' << i << s << L'\n'; + + stream.seekp(begin); + } + VERIFY( stream.good() ); +} + +void check_contents(std::wiostream& stream) +{ + bool test __attribute__((unused)) = true; + + stream.clear(); + stream.seekg(0, std::wios::beg); + int i = 0; + int loop = times * times + 2; + while (i < loop) + { + stream.ignore(80, L'\n'); + if (stream.good()) + ++i; + else + break; + } + VERIFY( i == times ); +} + +// fstream +// libstdc++/2346 +void test02() +{ + std::wfstream ofstrm; + ofstrm.open("wistream_seeks-3.txt", std::wios::out); + if (!ofstrm) + std::abort(); + write_rewind(ofstrm); + ofstrm.close(); + + std::wfstream ifstrm; + ifstrm.open("wistream_seeks-3.txt", std::wios::in); + check_contents(ifstrm); + ifstrm.close(); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc new file mode 100644 index 00000000000..e5115994742 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc @@ -0,0 +1,79 @@ +// Copyright (C) 2005 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 +// 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.6.2.4 basic_ostream seek members [lib.ostream.seeks] + +#include <ostream> +#include <istream> +#include <sstream> +#include <testsuite_hooks.h> + +const wchar_t* s = L" lootpack, peanut butter wolf, rob swift, madlib, quasimoto"; +const int times = 10; + +void write_rewind(std::wiostream& stream) +{ + bool test __attribute__((unused)) = true; + + for (int j = 0; j < times; j++) + { + std::streampos begin = stream.tellp(); + + for (int i = 0; i < times; ++i) + stream << j << L'-' << i << s << L'\n'; + + stream.seekp(begin); + } + VERIFY( stream.good() ); +} + +void check_contents(std::wiostream& stream) +{ + bool test __attribute__((unused)) = true; + + stream.clear(); + stream.seekg(0, std::wios::beg); + int i = 0; + int loop = times * times + 2; + while (i < loop) + { + stream.ignore(80, L'\n'); + if (stream.good()) + ++i; + else + break; + } + VERIFY( i == times ); +} + +// stringstream +// libstdc++/2346 +// N.B. The original testcase was broken, using tellg/seekg in write_rewind. +void test03() +{ + std::wstringstream sstrm; + + write_rewind(sstrm); + check_contents(sstrm); +} + +int main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc new file mode 100644 index 00000000000..8fbc6e530d3 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,98 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + __gnu_test::fail_wstreambuf bib; + wostream stream(&bib); + stream.exceptions(ios_base::badbit); + + wostream::pos_type pos = wostream::pos_type(); + + try + { + stream.seekp(pos); + VERIFY( false ); + } + catch (const __gnu_test::positioning_error&) + { + // stream should set badbit and rethrow facet_error. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); + } + catch (...) + { + VERIFY( false ); + } +} + +void test02() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + __gnu_test::fail_wstreambuf bib; + wostream stream(&bib); + stream.exceptions(ios_base::badbit); + + wostream::off_type off(5); + + try + { + stream.seekp(off, ios_base::cur); + VERIFY( false ); + } + catch (const __gnu_test::positioning_error&) + { + // stream should set badbit and rethrow facet_error. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); + } + catch (...) + { + VERIFY( false ); + } +} + +// libstdc++/9546 +int main() +{ + test01(); + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc index 72ba932efe6..7e75a15792a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc @@ -1,6 +1,6 @@ // 2003-02-06 Paolo Carlini <pcarlini@unitus.it> -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -34,13 +34,15 @@ #include <testsuite_hooks.h> // libstdc++/9563 -struct buf: std::streambuf +struct buf : std::streambuf { std::ios *io_; - buf (std::ios *io): io_ (io) { } + buf(std::ios *io) + : io_(io) { } - virtual int sync () + virtual int + sync() { io_->setstate (std::ios::failbit); return 0; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc new file mode 100644 index 00000000000..f56648dc4f7 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc @@ -0,0 +1,51 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.6.2.3 class basic_ostream::sentry + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/9562 +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::wstringbuf strbuf01; + std::wostream strm1(&strbuf01); + const std::wostream::sentry sentry1(strm1); + + VERIFY( bool(sentry1) == true ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc new file mode 100644 index 00000000000..35146a0119a --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc @@ -0,0 +1,71 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.6.2.3 class basic_ostream::sentry + +#include <ostream> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/9563 +struct buf : std::wstreambuf +{ + std::wios *io_; + + buf(std::wios *io) + : io_(io) { } + + virtual int + sync() + { + io_->setstate (std::wios::failbit); + return 0; + } +}; + +void +test02() +{ + bool test __attribute__((unused)) = true; + + buf b(0); + std::wostream strm(&b); + + buf tb(&strm); + std::wostream tied(&tb); + + strm.tie(&tied); + std::wostream::sentry s(strm); + + VERIFY( !s ); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc new file mode 100644 index 00000000000..3f75ce50eba --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc @@ -0,0 +1,62 @@ +// Copyright (C) 2005 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 +// 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.6.2.4 basic_ostream seek members + +#include <ostream> +#include <sstream> +#include <fstream> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + typedef wios::off_type off_type; + typedef wios::pos_type pos_type; + + bool test __attribute__((unused)) = true; + const char str_lit01[] = "wostream_seeks-1.txt"; + + // out + wostringstream ost1; + pos_type p1 = ost1.tellp(); + + wofstream ofs1; + pos_type p2 = ofs1.tellp(); + + // N.B. We implement the resolution of DR 453 and + // ostringstream::tellp() doesn't fail. + VERIFY( p1 == pos_type(off_type(0)) ); + VERIFY( p2 == pos_type(off_type(-1)) ); + + // out + // test ctors leave things in the same positions... + wostringstream ost2(L"bob_marley:kaya"); + p1 = ost2.tellp(); + + wofstream ofs2(str_lit01); + p2 = ofs2.tellp(); + + VERIFY( p1 == p2 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc new file mode 100644 index 00000000000..78834b203e0 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc @@ -0,0 +1,47 @@ +// Copyright (C) 2005 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 +// 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, +// + +#include <sstream> +#include <ostream> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + typedef std::wstringbuf::pos_type pos_type; + typedef std::wstringbuf::off_type off_type; + bool test __attribute__((unused)) = true; + + // tellp + wostringstream ost; + pos_type pos1; + pos1 = ost.tellp(); + VERIFY( pos1 == pos_type(off_type(0)) ); + ost << L"RZA "; + pos1 = ost.tellp(); + VERIFY( pos1 == pos_type(off_type(4)) ); + ost << L"ghost dog: way of the samurai"; + pos1 = ost.tellp(); + VERIFY( pos1 == pos_type(off_type(33)) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc new file mode 100644 index 00000000000..095fae41aa3 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,66 @@ +// Copyright (C) 2005 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. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include <ostream> +#include <streambuf> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_io.h> + +using namespace std; + +void test01() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_wstreambuf bib; + wostream stream(&bib); + stream.exceptions(ios_base::badbit); + + try + { + stream.tellp(); + VERIFY( false ); + } + catch (const __gnu_test::positioning_error&) + { + // stream should set badbit and rethrow facet_error. + VERIFY( stream.bad() ); + VERIFY( (stream.rdstate() & ios_base::failbit) == 0 ); + VERIFY( !stream.eof() ); + } + catch (...) + { + VERIFY(false); + } +} + +// libstdc++/9546 +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc index 2cb7f48b8b0..22cd5c01660 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc @@ -1,6 +1,6 @@ // 2003-09-22 Petur Runolfsson <peturr02@ru.is> -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005 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 @@ -35,7 +35,8 @@ class Buf : public std::streambuf { protected: - virtual int_type overflow(int_type = traits_type::eof()) + virtual int_type + overflow(int_type = traits_type::eof()) { throw 0; } }; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc new file mode 100644 index 00000000000..e6821013e22 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc @@ -0,0 +1,72 @@ +// Copyright (C) 2005 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.6.2.6 Unformatted output functions +// +// _GLIBCXX_RESOLVE_LIB_DEFECTS +// DR 60. What is a formatted input function? +// basic_ostream::write(const char_type*, streamsize) is an unformatted +// output function. +// DR 63. Exception-handling policy for unformatted output. +// Unformatted output functions should catch exceptions thrown +// from streambuf members. + +#include <ostream> +#include <streambuf> +#include <testsuite_hooks.h> + +class Buf : public std::wstreambuf +{ +protected: + virtual int_type + overflow(int_type = traits_type::eof()) + { throw 0; } +}; + +void test01() +{ + bool test = true; + + Buf buf; + std::wostream os(&buf); + + VERIFY( os.good() ); + + os.write(L"a", 1); + + VERIFY( os.rdstate() == std::ios_base::badbit ); + + os.clear(); + os.exceptions(std::ios_base::badbit); + + try + { + os.write(L"b", 1); + VERIFY( false ); + } + catch (int) + { + VERIFY( os.rdstate() == std::ios_base::badbit ); + } +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst new file mode 100644 index 00000000000..0b0acc85640 --- /dev/null +++ b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst @@ -0,0 +1,1000 @@ +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt new file mode 100644 index 00000000000..0b0acc85640 --- /dev/null +++ b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt @@ -0,0 +1,1000 @@ +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 +123456789 diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst b/libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst new file mode 100644 index 00000000000..cb3c57f7dfd --- /dev/null +++ b/libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst @@ -0,0 +1,158 @@ +// 990117 bkoz +// test functionality of basic_filebuf for char_type == char +// this is a data file for 27filebuf.cc + +// Copyright (C) 1997-1999 Cygnus Solutions +// +// 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. + +/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme +/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow + +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose + +/mnt/cdrom/marley-songs_of_freedom/disk_1/ +/mnt/cdrom/marley-songs_of_freedom/disk_2/ +/mnt/cdrom/marley-songs_of_freedom/disk_4/ + +/mnt/cdrom/marley-songs_of_freedom/disk_1/back out +/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low +/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) +/mnt/cdrom/marley-songs_of_freedom/disk_1/caution +/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice +/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat +/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror +/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer +/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites +/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting +/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not +/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood +/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown +/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time +/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee +/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready +/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on +/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down +/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party +/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) +/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining +/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) +/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley +/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' +/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle +/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy +/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up +/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly +/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide +/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff +/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside +/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion +/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba +/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself +/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread +/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble +/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant +/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face +/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver +/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock +/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite +/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system +/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card +/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 +/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix +/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah +/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise +/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop +/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub +/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up +/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation +/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi +/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) +/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl +/mnt/cdrom/marley-songs_of_freedom/disk_4/survival +/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un +/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe + +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not +/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue + +/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands +/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds +/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again +/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing +/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone +/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know +/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave +/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be +/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul + +So I take a break, wander down to the park to stand, then lean into +the concrete railing demarking the beginnings of space, oceanic +space. I watch the waves break, and form, and ease back out to sea and +wrap my arms around myself and hug tightly because it's early in the +morning and windy, and the sun is late getting out of bed today, which +is good because if there was brilliant light illuminating all the +beauty around me I would be shocked, stunned, forced to retreat back +into my cabana in a daze, blinded by hummingbirds and callilillies and +un-named red, yellow, and blue flowers. Green envelopes me, waves +sooth me. I can see the wind flip the top of the waves seaward, right +before they break. The sea seems so calm from my perch above the fray +that I wonder if maybe there is just some part of the deepest, most +abstract ocean where there is a large creature who happily chews +plankton and wags its tail in gentle, adulating waves that spread and +move and gracefully glide thousands of miles, to crash upon a beach, +one after the other, politely waiting for a turn to dance with the +seashore. + +I know: it is what the Mexican schoolchildren call "la vibora de la +mer," the serpent of the sea. + + + + + diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst b/libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst new file mode 100644 index 00000000000..cb3c57f7dfd --- /dev/null +++ b/libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst @@ -0,0 +1,158 @@ +// 990117 bkoz +// test functionality of basic_filebuf for char_type == char +// this is a data file for 27filebuf.cc + +// Copyright (C) 1997-1999 Cygnus Solutions +// +// 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. + +/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme +/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow + +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose + +/mnt/cdrom/marley-songs_of_freedom/disk_1/ +/mnt/cdrom/marley-songs_of_freedom/disk_2/ +/mnt/cdrom/marley-songs_of_freedom/disk_4/ + +/mnt/cdrom/marley-songs_of_freedom/disk_1/back out +/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low +/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) +/mnt/cdrom/marley-songs_of_freedom/disk_1/caution +/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice +/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat +/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror +/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer +/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites +/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting +/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not +/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood +/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown +/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time +/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee +/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready +/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on +/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down +/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party +/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) +/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining +/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) +/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley +/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' +/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle +/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy +/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up +/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly +/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide +/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff +/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside +/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion +/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba +/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself +/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread +/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble +/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant +/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face +/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver +/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock +/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite +/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system +/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card +/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 +/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix +/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah +/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise +/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop +/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub +/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up +/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation +/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi +/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) +/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl +/mnt/cdrom/marley-songs_of_freedom/disk_4/survival +/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un +/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe + +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not +/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue + +/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands +/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds +/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again +/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing +/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone +/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know +/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave +/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be +/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul + +So I take a break, wander down to the park to stand, then lean into +the concrete railing demarking the beginnings of space, oceanic +space. I watch the waves break, and form, and ease back out to sea and +wrap my arms around myself and hug tightly because it's early in the +morning and windy, and the sun is late getting out of bed today, which +is good because if there was brilliant light illuminating all the +beauty around me I would be shocked, stunned, forced to retreat back +into my cabana in a daze, blinded by hummingbirds and callilillies and +un-named red, yellow, and blue flowers. Green envelopes me, waves +sooth me. I can see the wind flip the top of the waves seaward, right +before they break. The sea seems so calm from my perch above the fray +that I wonder if maybe there is just some part of the deepest, most +abstract ocean where there is a large creature who happily chews +plankton and wags its tail in gentle, adulating waves that spread and +move and gracefully glide thousands of miles, to crash upon a beach, +one after the other, politely waiting for a turn to dance with the +seashore. + +I know: it is what the Mexican schoolchildren call "la vibora de la +mer," the serpent of the sea. + + + + + diff --git a/libstdc++-v3/testsuite/data/wostream_seeks-1.tst b/libstdc++-v3/testsuite/data/wostream_seeks-1.tst new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/libstdc++-v3/testsuite/data/wostream_seeks-1.tst |