]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
869a91a64794bc50006ffb2f137e80812477a66d
1 // { dg-do run { target c++14 } }
2 // { dg-require-fileio "" }
4 // Copyright (C) 2013-2020 Free Software Foundation, Inc.
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 3, or (at your option)
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING3. If not see
19 // <http://www.gnu.org/licenses/>.
23 // NB: This file is predicated on sstreams, istreams, and ostreams
24 // working, not to mention other major details like char_traits, and
25 // all of the string_view class.
27 #include <experimental/string_view>
31 #include <testsuite_hooks.h>
33 // testing basic_filebuf::xsputn via stress testing with large string_views
34 // based on a bug report libstdc++ 9
37 test05(std::size_t size
)
39 const char filename
[] = "inserters_extractors-2.txt";
40 const wchar_t fillc
= L
'f';
41 std::wofstream
ofs(filename
);
42 std::wstring
str(size
, fillc
);
43 std::experimental::wstring_view
strv(str
);
46 VERIFY( str
.size() == size
);
50 ofs
<< str
<< std::endl
;
54 ofs
<< str
<< std::endl
;
58 VERIFY( str
.size() == size
);
63 // sanity check on the written file
64 std::wifstream
ifs(filename
);
65 std::size_t count
= 0;
67 while (count
<= (2 * size
) + 4)
70 if (ifs
.good() && c
== fillc
)
79 VERIFY( count
== 2 * size
);