Compare commits

..

7 Commits

6 changed files with 61 additions and 39 deletions

View File

@@ -306,20 +306,20 @@ jobs:
git submodule update --init tools/boostdep git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
- name: Configure - name: Configure (Debug)
run: | run: |
cd ../boost-root cd ../boost-root
mkdir __build__ && cd __build__ mkdir __build_debug__ && cd __build_debug__
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON -DBUILD_SHARED_LIBS=${{matrix.shared}} .. cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCMAKE_BUILD_TYPE=Debug ..
- name: Build tests - name: Build tests (Debug)
run: | run: |
cd ../boost-root/__build__ cd ../boost-root/__build_debug__
cmake --build . --target tests cmake --build . --target tests
- name: Run tests - name: Run tests (Debug)
run: | run: |
cd ../boost-root/__build__ cd ../boost-root/__build_debug__
ctest --output-on-failure --no-tests=error ctest --output-on-failure --no-tests=error
windows-cmake-subdir: windows-cmake-subdir:
@@ -363,12 +363,12 @@ jobs:
cmake --build . --config Debug cmake --build . --config Debug
ctest --output-on-failure --no-tests=error -C Debug ctest --output-on-failure --no-tests=error -C Debug
- name: Use library with add_subdirectory (Release) - name: Use library with add_subdirectory (RelWithDebInfo)
shell: cmd shell: cmd
run: | run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test/__build__ cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test/__build__
cmake --build . --config Release cmake --build . --config RelWithDebInfo
ctest --output-on-failure --no-tests=error -C Release ctest --output-on-failure --no-tests=error -C RelWithDebInfo
windows-cmake-install: windows-cmake-install:
strategy: strategy:
@@ -415,11 +415,11 @@ jobs:
cd ../boost-root/__build__ cd ../boost-root/__build__
cmake --build . --target install --config Debug cmake --build . --target install --config Debug
- name: Install (Release) - name: Install (RelWithDebInfo)
shell: cmd shell: cmd
run: | run: |
cd ../boost-root/__build__ cd ../boost-root/__build__
cmake --build . --target install --config Release cmake --build . --target install --config RelWithDebInfo
- name: Use the installed library (Debug) - name: Use the installed library (Debug)
shell: cmd shell: cmd
@@ -430,13 +430,13 @@ jobs:
PATH C:\cmake-prefix\bin;%PATH% PATH C:\cmake-prefix\bin;%PATH%
ctest --output-on-failure --no-tests=error -C Debug ctest --output-on-failure --no-tests=error -C Debug
- name: Use the installed library (Release) - name: Use the installed library (RelWithDebInfo)
shell: cmd shell: cmd
run: | run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__ cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__
cmake --build . --config Release cmake --build . --config RelWithDebInfo
PATH C:\cmake-prefix\bin;%PATH% PATH C:\cmake-prefix\bin;%PATH%
ctest --output-on-failure --no-tests=error -C Release ctest --output-on-failure --no-tests=error -C RelWithDebInfo
windows-cmake-test: windows-cmake-test:
strategy: strategy:
@@ -489,14 +489,14 @@ jobs:
cd ../boost-root/__build__ cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error -C Debug ctest --output-on-failure --no-tests=error -C Debug
- name: Build tests (Release) - name: Build tests (RelWithDebInfo)
shell: cmd shell: cmd
run: | run: |
cd ../boost-root/__build__ cd ../boost-root/__build__
cmake --build . --target tests --config Release cmake --build . --target tests --config RelWithDebInfo
- name: Run tests (Release) - name: Run tests (RelWithDebInfo)
shell: cmd shell: cmd
run: | run: |
cd ../boost-root/__build__ cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error -C Release ctest --output-on-failure --no-tests=error -C RelWithDebInfo

View File

@@ -96,20 +96,37 @@ stacktrace_add_library(basic ${BOOST_STACKTRACE_ENABLE_BASIC} "${CMAKE_DL_LIBS}"
stacktrace_add_library(windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} "dbgeng;ole32" "_GNU_SOURCE=1") stacktrace_add_library(windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} "dbgeng;ole32" "_GNU_SOURCE=1")
stacktrace_add_library(windbg_cached ${BOOST_STACKTRACE_ENABLE_WINDBG_CACHED} "dbgeng;ole32" "_GNU_SOURCE=1") stacktrace_add_library(windbg_cached ${BOOST_STACKTRACE_ENABLE_WINDBG_CACHED} "dbgeng;ole32" "_GNU_SOURCE=1")
# boost_stacktrace, default library
add_library(boost_stacktrace INTERFACE)
add_library(Boost::stacktrace ALIAS boost_stacktrace)
target_include_directories(boost_stacktrace INTERFACE include)
# Alias target for platform defaults (only if they enabled).
if(WIN32)
if(BOOST_STACKTRACE_ENABLE_WINDBG) if(BOOST_STACKTRACE_ENABLE_WINDBG)
add_library(Boost::stacktrace ALIAS boost_stacktrace_windbg)
endif() target_link_libraries(boost_stacktrace INTERFACE Boost::stacktrace_windbg)
else()
if(BOOST_STACKTRACE_ENABLE_BACKTRACE) elseif(BOOST_STACKTRACE_ENABLE_BACKTRACE)
add_library(Boost::stacktrace ALIAS boost_stacktrace_backtrace)
target_link_libraries(boost_stacktrace INTERFACE Boost::stacktrace_backtrace)
elseif(BOOST_STACKTRACE_ENABLE_ADDR2LINE)
target_link_libraries(boost_stacktrace INTERFACE Boost::stacktrace_addr2line)
elseif(BOOST_STACKTRACE_ENABLE_BASIC) elseif(BOOST_STACKTRACE_ENABLE_BASIC)
add_library(Boost::stacktrace ALIAS boost_stacktrace_basic)
endif() target_link_libraries(boost_stacktrace INTERFACE Boost::stacktrace_basic)
elseif(BOOST_STACKTRACE_ENABLE_NOOP)
target_link_libraries(boost_stacktrace INTERFACE Boost::stacktrace_noop)
endif() endif()
#
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt") if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
add_subdirectory(test) add_subdirectory(test)

View File

@@ -8,8 +8,7 @@ if(NOT HAVE_BOOST_TEST)
return() return()
endif() endif()
# This test doesn't work with stacktrace_basic boost_test(TYPE run SOURCES test.cpp test_impl.cpp LINK_LIBRARIES Boost::stacktrace Boost::core)
# boost_test(TYPE run SOURCES test.cpp test_impl.cpp Boost::stacktrace_basic Boost::core)
boost_test(TYPE run SOURCES test_noop.cpp test_impl.cpp LINK_LIBRARIES Boost::stacktrace_noop Boost::core) boost_test(TYPE run SOURCES test_noop.cpp test_impl.cpp LINK_LIBRARIES Boost::stacktrace_noop Boost::core)
boost_test(TYPE run SOURCES test_trivial.cpp LINK_LIBRARIES Boost::stacktrace_basic Boost::core)
boost_test(TYPE run SOURCES test_trivial.cpp LINK_LIBRARIES Boost::stacktrace Boost::core)

View File

@@ -6,10 +6,10 @@ cmake_minimum_required(VERSION 3.5...3.20)
project(cmake_install_test LANGUAGES CXX) project(cmake_install_test LANGUAGES CXX)
find_package(boost_stacktrace_basic REQUIRED) find_package(boost_stacktrace REQUIRED)
add_executable(main main.cpp) add_executable(main main.cpp)
target_link_libraries(main Boost::stacktrace_basic) target_link_libraries(main Boost::stacktrace)
enable_testing() enable_testing()
add_test(main main) add_test(main main)

View File

@@ -40,7 +40,7 @@ foreach(dep IN LISTS deps)
endforeach() endforeach()
add_executable(main main.cpp) add_executable(main main.cpp)
target_link_libraries(main Boost::stacktrace_basic) target_link_libraries(main Boost::stacktrace)
enable_testing() enable_testing()
add_test(main main) add_test(main main)

View File

@@ -257,6 +257,12 @@ void test_empty_basic_stacktrace() {
BOOST_TEST(!(st > st_t(0, 0))); BOOST_TEST(!(st > st_t(0, 0)));
} }
void test_stacktrace_limits()
{
BOOST_TEST_EQ(boost::stacktrace::stacktrace(0, 1).size(), 1);
BOOST_TEST_EQ(boost::stacktrace::stacktrace(1, 1).size(), 1);
}
int main() { int main() {
test_deeply_nested_namespaces(); test_deeply_nested_namespaces();
test_frames_string_data_validity(); test_frames_string_data_validity();
@@ -275,8 +281,8 @@ int main() {
test_comparisons_base(make_some_stacktrace1(), make_some_stacktrace2()); test_comparisons_base(make_some_stacktrace1(), make_some_stacktrace2());
test_nested<260>(false); test_nested<260>(false);
BOOST_TEST(boost::stacktrace::stacktrace(0, 1).size() == 1);
BOOST_TEST(boost::stacktrace::stacktrace(1, 1).size() == 1); test_stacktrace_limits();
return boost::report_errors(); return boost::report_errors();
} }