mirror of
https://github.com/boostorg/boost_install.git
synced 2026-01-19 04:02:13 +00:00
Add test/program_options
This commit is contained in:
@@ -84,6 +84,8 @@ matrix:
|
||||
- env: LIB=iostreams UBP=1
|
||||
- env: LIB=log
|
||||
- env: LIB=log UBP=1
|
||||
- env: LIB=program_options
|
||||
- env: LIB=program_options UBP=1
|
||||
- env: LIB=python PYTHON=2.7,3.5
|
||||
- env: LIB=python UBP=1 PYTHON=2.7,3.5
|
||||
- env: LIB=random
|
||||
|
||||
27
test/program_options/CMakeLists.txt
Normal file
27
test/program_options/CMakeLists.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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)
|
||||
|
||||
project(CmakeConfigProgramOptionsTest LANGUAGES CXX)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
|
||||
|
||||
if(USE_BOOST_PACKAGE)
|
||||
|
||||
find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS program_options)
|
||||
|
||||
else()
|
||||
|
||||
find_package(boost_program_options ${BOOST_VERSION} EXACT CONFIG REQUIRED)
|
||||
|
||||
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)
|
||||
49
test/program_options/quick.cpp
Normal file
49
test/program_options/quick.cpp
Normal file
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user