From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- .../testsuite/27_io/basic_ostream/tellp/char/1.cc | 65 ++++++++++++++++++++++ .../testsuite/27_io/basic_ostream/tellp/char/2.cc | 49 ++++++++++++++++ .../tellp/char/exceptions_badbit_throw.cc | 57 +++++++++++++++++++ .../27_io/basic_ostream/tellp/wchar_t/1.cc | 61 ++++++++++++++++++++ .../27_io/basic_ostream/tellp/wchar_t/2.cc | 47 ++++++++++++++++ .../tellp/wchar_t/exceptions_badbit_throw.cc | 57 +++++++++++++++++++ 6 files changed, 336 insertions(+) create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc create mode 100644 libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc (limited to 'libstdc++-v3/testsuite/27_io/basic_ostream/tellp') diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc new file mode 100644 index 000000000..ab492e17e --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc @@ -0,0 +1,65 @@ +// 2000-06-29 bkoz + +// Copyright (C) 2000, 2003, 2004, 2009 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 3, 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 COPYING3. If not see +// . + +// 27.6.2.4 basic_ostream seek members + +// { dg-require-fileio "" } + +#include +#include +#include +#include + +void test01() +{ + using namespace std; + typedef ios::off_type off_type; + typedef ios::pos_type pos_type; + + bool test __attribute__((unused)) = true; + const char str_lit01[] = "ostream_seeks-1.txt"; + + // out + ostringstream ost1; + pos_type p1 = ost1.tellp(); + + ofstream 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... + ostringstream ost2("bob_marley:kaya"); + p1 = ost2.tellp(); + + ofstream 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/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc new file mode 100644 index 000000000..abfa2ff27 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc @@ -0,0 +1,49 @@ +// 2000-03-23 bkoz + +// Copyright (C) 2000, 2003, 2004, 2009 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 3, 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 COPYING3. If not see +// . +// + +#include +#include +#include + +void test01() +{ + using namespace std; + typedef std::stringbuf::pos_type pos_type; + typedef std::stringbuf::off_type off_type; + bool test __attribute__((unused)) = true; + + // tellp + ostringstream ost; + pos_type pos1; + pos1 = ost.tellp(); + VERIFY( pos1 == pos_type(off_type(0)) ); + ost << "RZA "; + pos1 = ost.tellp(); + VERIFY( pos1 == pos_type(off_type(4)) ); + ost << "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/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc new file mode 100644 index 000000000..30cbc1714 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc @@ -0,0 +1,57 @@ +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + + +#include +#include +#include +#include +#include + +using namespace std; + +void test01() +{ + bool test __attribute__((unused)) = true; + __gnu_test::fail_streambuf bib; + ostream 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/tellp/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc new file mode 100644 index 000000000..65affb91e --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc @@ -0,0 +1,61 @@ +// Copyright (C) 2005, 2009 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 3, 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 COPYING3. If not see +// . + +// 27.6.2.4 basic_ostream seek members + +#include +#include +#include +#include + +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 000000000..98287f439 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc @@ -0,0 +1,47 @@ +// Copyright (C) 2005, 2009 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 3, 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 COPYING3. If not see +// . +// + +#include +#include +#include + +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 000000000..434485b92 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc @@ -0,0 +1,57 @@ +// Copyright (C) 2005, 2009 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 3, 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 COPYING3. If not see +// . + + +#include +#include +#include +#include +#include + +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; +} -- cgit v1.2.3