Imported existing code
This commit is contained in:
91
libraries/include/boost/test/impl/interaction_based.ipp
Normal file
91
libraries/include/boost/test/impl/interaction_based.ipp
Normal file
@@ -0,0 +1,91 @@
|
||||
// (C) Copyright Gennadiy Rozental 2005-2008.
|
||||
// Use, modification, and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/test for the library home page.
|
||||
//
|
||||
// File : $RCSfile$
|
||||
//
|
||||
// Version : $Revision: 49312 $
|
||||
//
|
||||
// Description : Facilities to perform interaction-based testing
|
||||
// ***************************************************************************
|
||||
|
||||
#ifndef BOOST_TEST_INTERACTION_BASED_IPP_112105GER
|
||||
#define BOOST_TEST_INTERACTION_BASED_IPP_112105GER
|
||||
|
||||
// Boost.Test
|
||||
#include <boost/test/detail/config.hpp>
|
||||
|
||||
#if BOOST_TEST_SUPPORT_INTERACTION_TESTING
|
||||
|
||||
// Boost.Test
|
||||
#include <boost/test/detail/config.hpp>
|
||||
#include <boost/test/utils/callback.hpp>
|
||||
#include <boost/test/interaction_based.hpp>
|
||||
#include <boost/test/mock_object.hpp>
|
||||
#include <boost/test/framework.hpp> // for setup_error
|
||||
|
||||
#include <boost/test/detail/suppress_warnings.hpp>
|
||||
|
||||
// STL
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
//____________________________________________________________________________//
|
||||
|
||||
namespace boost {
|
||||
|
||||
namespace itest { // interaction-based testing
|
||||
|
||||
// ************************************************************************** //
|
||||
// ************** manager ************** //
|
||||
// ************************************************************************** //
|
||||
|
||||
manager::manager()
|
||||
{
|
||||
instance_ptr( true, this );
|
||||
}
|
||||
|
||||
//____________________________________________________________________________//
|
||||
|
||||
manager::~manager()
|
||||
{
|
||||
instance_ptr( true );
|
||||
}
|
||||
|
||||
//____________________________________________________________________________//
|
||||
|
||||
manager*
|
||||
manager::instance_ptr( bool reset, manager* new_ptr )
|
||||
{
|
||||
static manager dummy( 0 );
|
||||
|
||||
static manager* ptr = &dummy;
|
||||
|
||||
if( reset ) {
|
||||
if( new_ptr ) {
|
||||
if( ptr != &dummy )
|
||||
throw unit_test::framework::setup_error( BOOST_TEST_L( "Couldn't run two interation based test the same time" ) );
|
||||
|
||||
ptr = new_ptr;
|
||||
}
|
||||
else
|
||||
ptr = &dummy;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
} // namespace itest
|
||||
|
||||
} // namespace boost
|
||||
|
||||
//____________________________________________________________________________//
|
||||
|
||||
#include <boost/test/detail/enable_warnings.hpp>
|
||||
|
||||
#endif // not ancient compiler
|
||||
|
||||
#endif // BOOST_TEST_INTERACTION_BASED_IPP_112105GER
|
||||
Reference in New Issue
Block a user