57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//  (C) Copyright Gennadiy Rozental 2001.
							 | 
						||
| 
								 | 
							
								//  Distributed under the Boost Software License, Version 1.0.
							 | 
						||
| 
								 | 
							
								//  (See accompanying file LICENSE_1_0.txt or copy at
							 | 
						||
| 
								 | 
							
								//  http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//  See http://www.boost.org/libs/test for the library home page.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  File        : $RCSfile$
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Version     : $Revision$
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Description : runtime parameters initialization final step
							 | 
						||
| 
								 | 
							
								// ***************************************************************************
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_TEST_UTILS_RUNTIME_FINALIZE_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_TEST_UTILS_RUNTIME_FINALIZE_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Boost.Test Runtime parameters
							 | 
						||
| 
								 | 
							
								#include <boost/test/utils/runtime/parameter.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/test/utils/runtime/argument.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Boost.Test
							 | 
						||
| 
								 | 
							
								#include <boost/test/utils/foreach.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/test/detail/suppress_warnings.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace runtime {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								inline void
							 | 
						||
| 
								 | 
							
								finalize_arguments( parameters_store const& params, runtime::arguments_store& args )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    BOOST_TEST_FOREACH( parameters_store::storage_type::value_type const&, v, params.all() ) {
							 | 
						||
| 
								 | 
							
								        basic_param_ptr param = v.second;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if( !args.has( param->p_name ) ) {
							 | 
						||
| 
								 | 
							
								            if( param->p_has_default_value )
							 | 
						||
| 
								 | 
							
								                param->produce_default( args );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if( !args.has( param->p_name ) ) {
							 | 
						||
| 
								 | 
							
								                BOOST_TEST_I_ASSRT( param->p_optional,
							 | 
						||
| 
								 | 
							
								                    missing_req_arg( param->p_name ) << "Missing argument for required parameter " << param->p_name << "." );
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if( args.has( param->p_name ) && !!param->p_callback )
							 | 
						||
| 
								 | 
							
								            param->p_callback( param->p_name );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // namespace runtime
							 | 
						||
| 
								 | 
							
								} // namespace boost
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/test/detail/enable_warnings.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_TEST_UTILS_RUNTIME_FINALIZE_HPP
							 |