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