diff options
Diffstat (limited to '')
-rw-r--r-- | src/boost/tools/boost_install/test/program_options/CMakeLists.txt | 37 | ||||
-rw-r--r-- | src/boost/tools/boost_install/test/program_options/quick.cpp | 49 |
2 files changed, 86 insertions, 0 deletions
diff --git a/src/boost/tools/boost_install/test/program_options/CMakeLists.txt b/src/boost/tools/boost_install/test/program_options/CMakeLists.txt new file mode 100644 index 000000000..11b049658 --- /dev/null +++ b/src/boost/tools/boost_install/test/program_options/CMakeLists.txt @@ -0,0 +1,37 @@ +# Copyright 2018, 2019 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +cmake_minimum_required(VERSION 3.5) + +if(POLICY CMP0074) + cmake_policy(SET CMP0074 NEW) +endif() + +project(CmakeConfigProgramOptionsTest LANGUAGES CXX) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake) + +set(BOOST_HINTS) + +if(USE_STAGED_BOOST) + set(BOOST_HINTS HINTS ../../../../stage) +endif() + +if(USE_BOOST_PACKAGE) + + find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS program_options ${BOOST_HINTS}) + +else() + + find_package(boost_program_options ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS}) + +endif() + +add_executable(main quick.cpp) +target_link_libraries(main Boost::program_options) + +enable_testing() +add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>) + +add_test(NAME main COMMAND main --path=initial) diff --git a/src/boost/tools/boost_install/test/program_options/quick.cpp b/src/boost/tools/boost_install/test/program_options/quick.cpp new file mode 100644 index 000000000..edf45c4a2 --- /dev/null +++ b/src/boost/tools/boost_install/test/program_options/quick.cpp @@ -0,0 +1,49 @@ + +// Copyright 2017 Peter Dimov. +// +// 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 library home page at http://www.boost.org/libs/program_options + +#include <boost/program_options.hpp> +#include <boost/core/lightweight_test.hpp> + +namespace po = boost::program_options; + +int main( int argc, char const* argv[] ) +{ + po::options_description desc( "Allowed options" ); + + desc.add_options() + ( "path,p", po::value<std::string>(), "set initial path" ) + ; + + po::variables_map vm; + + try + { + po::store( po::parse_command_line( argc, argv, desc ), vm ); + po::notify( vm ); + } + catch( std::exception const & x ) + { + std::cerr << "Error: " << x.what() << std::endl; + return 1; + } + + std::string p; + + if( vm.count( "path" ) ) + { + p = vm[ "path" ].as<std::string>(); + } + + std::string expected( "initial" ); + + BOOST_TEST_EQ( p, expected ); + + return boost::report_errors(); +} |