1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/*********************************************************************************** 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott test_push_back.h 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott Interface for the test_push_back class 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Copyright (c) 1997 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Mark of the Unicorn, Inc. 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Permission to use, copy, modify, distribute and sell this software 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * and its documentation for any purpose is hereby granted without fee, 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * provided that the above copyright notice appear in all copies and 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * that both that copyright notice and this permission notice appear 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * in supporting documentation. Mark of the Unicorn makes no 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * representations about the suitability of this software for any 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * purpose. It is provided "as is" without express or implied warranty. 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott***********************************************************************************/ 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifndef test_push_back_H_ 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define test_push_back_H_ 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifdef EH_NEW_HEADERS 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <cassert> 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <assert.h> 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include "Prefix.h" 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "nc_alloc.h" 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate <class C> 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct test_push_back 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott test_push_back( const C& orig ) : original( orig ) 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott { 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott gTestController.SetCurrentTestName("push_back() method"); 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott } 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott void operator()( C& c ) const 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott { 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott typedef typename C::value_type _value_type; 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott c.push_back(_value_type() ); 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott // Prevent simulated failures during verification 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott gTestController.CancelFailureCountdown(); 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott EH_ASSERT( c.size() == original.size() + 1 ); 44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott EH_ASSERT( EH_STD::equal( original.begin(), original.end(), c.begin() ) ); 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott } 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottprivate: 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott const C& original; 48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}; 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif // test_push_back_H_ 51