diff options
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/test/utils/runtime/finalize.hpp')
-rw-r--r-- | src/third_party/boost-1.69.0/boost/test/utils/runtime/finalize.hpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/boost/test/utils/runtime/finalize.hpp b/src/third_party/boost-1.69.0/boost/test/utils/runtime/finalize.hpp new file mode 100644 index 00000000000..181428550c1 --- /dev/null +++ b/src/third_party/boost-1.69.0/boost/test/utils/runtime/finalize.hpp @@ -0,0 +1,56 @@ +// (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 |