1// -*- C++ -*-
2// Testing allocator for the C++ library testsuite.
3//
4// Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc.
5//
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)
10// any later version.
11//
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.
16//
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/>.
20//
21
22#include <iostream>
23#include <testsuite_allocator.h>
24
25namespace __gnu_test
26{
27  typedef tracker_allocator_counter counter_type;
28
29  counter_type::size_type
30  counter_type::allocationCount_ = 0;
31
32  counter_type::size_type
33  counter_type::deallocationCount_ = 0;
34
35  int counter_type::constructCount_ = 0;
36  int counter_type::destructCount_ = 0;
37
38  bool
39  check_construct_destroy(const char* tag, int expected_c, int expected_d)
40  {
41    bool ret = true;
42    if (counter_type::get_construct_count() != expected_c
43	|| counter_type::get_destruct_count() != expected_d)
44      {
45	std::cerr << tag << ": "
46		  << " construct = " << counter_type::get_construct_count()
47		  << " (should be " << expected_c << "),"
48		  << " destroy = " << counter_type::get_destruct_count()
49		  << " (should be " << expected_d << ")"
50		  << std::endl;
51	ret = false;
52      }
53    return ret;
54  }
55} // namespace __cxx_test
56
57