]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 27_io / basic_stringbuf / overflow / char / 1.cc
CommitLineData
9f9000d1
PC
1// 2004-07-07 Paolo Carlini <pcarlini@suse.de>
2
99dee823 3// Copyright (C) 2004-2021 Free Software Foundation, Inc.
9f9000d1
PC
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
748086b7 8// Free Software Foundation; either version 3, or (at your option)
9f9000d1
PC
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
748086b7
JJ
17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
9f9000d1
PC
19
20// 27.7.1.3 basic_stringbuf overridden virtual functions.
21
22#include <sstream>
23#include <cstdlib>
24#include <testsuite_hooks.h>
25
26using namespace std;
27
28string
29data(unsigned len)
30{
31 string ret;
32 for (unsigned i = 0; i < len; ++i)
33 ret.push_back('a' + rand() % 26);
34 return ret;
35}
36
37void
38test01(unsigned iter)
39{
9f9000d1
PC
40 for (unsigned n = 1; n <= iter; n *= 10)
41 {
42 const string str = data(n);
43 stringbuf sstr;
44 for (unsigned i = 0; i < n; ++i)
45 sstr.sputc(str[i]);
46 VERIFY( str == sstr.str() );
47 }
48}
49
ed445ba3
HPN
50// This can take long on simulators, timing out the test.
51// { dg-options "-DITERATIONS=10000" { target simulator } }
52#ifndef ITERATIONS
53#define ITERATIONS 10000000
54#endif
55
9f9000d1
PC
56int main()
57{
ed445ba3 58 test01(ITERATIONS);
9f9000d1
PC
59 return 0;
60}