1// -*- C++ -*- 2// Testing allocator for the C++ library testsuite. 3// 4// Copyright (C) 2002, 2003 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 2, 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 COPYING. If not, write to the Free 19// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20// USA. 21// 22// As a special exception, you may use this file as part of a free software 23// library without restriction. Specifically, if other files instantiate 24// templates or use macros or inline functions from this file, or you compile 25// this file and link it with other files to produce an executable, this 26// file does not by itself cause the resulting executable to be covered by 27// the GNU General Public License. This exception does not however 28// invalidate any other reasons why the executable file might be covered by 29// the GNU General Public License. 30 31#include <iostream> 32#include <testsuite_allocator.h> 33 34namespace __gnu_test 35{ 36 allocation_tracker::size_type allocation_tracker::allocationTotal_ = 0; 37 allocation_tracker::size_type allocation_tracker::deallocationTotal_ = 0; 38 int allocation_tracker::constructCount_ = 0; 39 int allocation_tracker::destructCount_ = 0; 40 41 bool 42 check_construct_destroy(const char* tag, int expected_c, int expected_d) 43 { 44 if (allocation_tracker::constructCount() == expected_c && 45 allocation_tracker::destructCount() == expected_d) 46 return true; 47 48 else { 49 std::cerr << tag << ": " 50 << " construct = " << allocation_tracker::constructCount() 51 << " (should be " << expected_c << ")," 52 << " destroy = " << allocation_tracker::destructCount() 53 << " (should be " << expected_d << ")" 54 << std::endl; 55 return false; 56 } 57 } 58 59}; // namespace __cxx_test 60 61