]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 21_strings / basic_string / capacity / wchar_t / 18654.cc
CommitLineData
d1a7222c
PC
1// 2004-11-29 Paolo Carlini <pcarlini@suse.de>
2
748086b7 3// Copyright (C) 2004, 2009 Free Software Foundation
d1a7222c
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)
d1a7222c
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/>.
d1a7222c
PC
19
20// 21.3.3 string capacity
21
22#include <string>
23#include <testsuite_hooks.h>
24
25// libstdc++/18654
26void test01()
27{
28 using namespace std;
29 bool test __attribute__((unused)) = true;
30
31 typedef wstring::size_type size_type;
32
33 // Our current implementation provides exact shrink-to-size
34 // and shrink-to-fit (in the future, maybe this will change
35 // for short strings).
4f70f9d2
PC
36 const size_type minsize = 2 << 0;
37 const size_type maxsize = 2 << 20;
38 for (size_type i = minsize; i <= maxsize; i *= 2)
d1a7222c
PC
39 {
40 wstring str(i, L'x');
41 str.reserve(3 * i);
42
43 str.reserve(2 * i);
44 VERIFY( str.capacity() == 2 * i );
45
46 str.reserve();
47 VERIFY( str.capacity() == i );
48 }
49}
50
51int main()
52{
53 test01();
54 return 0;
55}