]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 23_containers / deque / check_construct_destroy.cc
CommitLineData
1985f1cd
MA
1// 2004-07-26 Matt Austern <austern@apple.com>
2//
818ab71a 3// Copyright (C) 2003-2016 Free Software Foundation, Inc.
1985f1cd
MA
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)
1985f1cd
MA
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/>.
1985f1cd 19//
1985f1cd
MA
20
21#include <deque>
22#include <testsuite_allocator.h>
23
24using namespace __gnu_test;
25
26int main()
27{
9f9900db 28 typedef std::deque<int, tracker_allocator<int> > Container;
1985f1cd
MA
29 const int arr10[10] = { 2, 4, 1, 7, 3, 8, 10, 5, 9, 6 };
30 bool ok = true;
31
9f9900db 32 tracker_allocator_counter::reset();
1985f1cd
MA
33 {
34 Container c;
35 ok = check_construct_destroy("empty container", 0, 0) && ok;
36 }
37 ok = check_construct_destroy("empty container", 0, 0) && ok;
38
39
9f9900db 40 tracker_allocator_counter::reset();
1985f1cd
MA
41 {
42 Container c(arr10, arr10 + 10);
43 ok = check_construct_destroy("Construct from range", 10, 0) && ok;
44 }
45 ok = check_construct_destroy("Construct from range", 10, 10) && ok;
46
47 {
48 Container c(arr10, arr10 + 10);
9f9900db 49 tracker_allocator_counter::reset();
1985f1cd
MA
50 c.insert(c.begin(), arr10[0]);
51 ok = check_construct_destroy("Insert element", 1, 0) && ok;
52 }
53 ok = check_construct_destroy("Insert element", 1, 11) && ok;
54
55 {
56 Container c(arr10, arr10 + 10);
9f9900db 57 tracker_allocator_counter::reset();
1985f1cd
MA
58 c.insert(c.begin() + 5, arr10, arr10+3);
59 ok = check_construct_destroy("Insert short range", 3, 0) && ok;
60 }
61 ok = check_construct_destroy("Insert short range", 3, 13) && ok;
62
63 {
64 Container c(arr10, arr10 + 10);
9f9900db 65 tracker_allocator_counter::reset();
1985f1cd
MA
66 c.insert(c.begin() + 7, arr10, arr10+10);
67 ok = check_construct_destroy("Insert long range", 10, 0) && ok;
68 }
69 ok = check_construct_destroy("Insert long range", 10, 20) && ok;
70
71 return ok ? 0 : 1;;
72}
73