Fix ci?
This commit is contained in:
parent
93b1d1c76a
commit
9275f62fc5
@ -177,6 +177,7 @@ def build(matrix):
|
||||
f"-D{matrix['demangle']}=On",
|
||||
"-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h",
|
||||
"-DCPPTRACE_BUILD_TESTING=On",
|
||||
"-DCPPTRACE_IS_GH_ACTIONS=On",
|
||||
f"-DBUILD_SHARED_LIBS={matrix['shared']}"
|
||||
]
|
||||
if matrix['symbols'] == "CPPTRACE_GET_SYMBOLS_WITH_LIBDL":
|
||||
@ -199,6 +200,7 @@ def build(matrix):
|
||||
f"-D{matrix['symbols']}=On",
|
||||
f"-D{matrix['demangle']}=On",
|
||||
"-DCPPTRACE_BUILD_TESTING=On",
|
||||
"-DCPPTRACE_IS_GH_ACTIONS=On",
|
||||
f"-DBUILD_SHARED_LIBS={matrix['shared']}"
|
||||
]
|
||||
if matrix["compiler"] == "g++":
|
||||
@ -225,6 +227,7 @@ def build_full_or_auto(matrix):
|
||||
f"-DCPPTRACE_WERROR_BUILD=On",
|
||||
f"-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h",
|
||||
"-DCPPTRACE_BUILD_TESTING=On",
|
||||
"-DCPPTRACE_IS_GH_ACTIONS=On",
|
||||
f"-DBUILD_SHARED_LIBS={matrix['shared']}"
|
||||
]
|
||||
if matrix["config"] != "":
|
||||
@ -244,6 +247,7 @@ def build_full_or_auto(matrix):
|
||||
f"-DCPPTRACE_USE_EXTERNAL_ZSTD=On",
|
||||
f"-DCPPTRACE_WERROR_BUILD=On",
|
||||
"-DCPPTRACE_BUILD_TESTING=On",
|
||||
"-DCPPTRACE_IS_GH_ACTIONS=On",
|
||||
f"-DBUILD_SHARED_LIBS={matrix['shared']}"
|
||||
]
|
||||
if matrix["config"] != "":
|
||||
|
||||
@ -167,6 +167,7 @@ option(CPPTRACE_CONDA_LIBDWARF_WEIRDNESS "" OFF)
|
||||
option(CPPTRACE_SANITIZER_BUILD "" OFF)
|
||||
option(CPPTRACE_WERROR_BUILD "" OFF)
|
||||
option(CPPTRACE_POSITION_INDEPENDENT_CODE "" ON)
|
||||
option(CPPTRACE_IS_GH_ACTIONS "" OFF)
|
||||
|
||||
mark_as_advanced(
|
||||
CPPTRACE_BACKTRACE_PATH
|
||||
@ -177,4 +178,5 @@ mark_as_advanced(
|
||||
CPPTRACE_CONAN
|
||||
CPPTRACE_VCPKG
|
||||
CPPTRACE_CONDA_LIBDWARF_WEIRDNESS
|
||||
CPPTRACE_IS_GH_ACTIONS
|
||||
)
|
||||
|
||||
@ -35,17 +35,20 @@ if(UNIX)
|
||||
target_link_libraries(signal_tracer PRIVATE ${target_name})
|
||||
endif()
|
||||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY "https://github.com/google/googletest.git"
|
||||
GIT_TAG f8d7d77c06936315286eb55f8de22cd23c188571 # v1.14.0
|
||||
)
|
||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
# primarily a workaround for github actions issue https://github.com/actions/runner-images/issues/8659
|
||||
if(NOT CPPTRACE_IS_GH_ACTIONS)
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY "https://github.com/google/googletest.git"
|
||||
GIT_TAG f8d7d77c06936315286eb55f8de22cd23c188571 # v1.14.0
|
||||
)
|
||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
add_executable(unittest unittest.cpp)
|
||||
target_compile_features(unittest PRIVATE cxx_std_20)
|
||||
target_link_libraries(unittest PRIVATE ${target_name} GTest::gtest_main GTest::gmock_main)
|
||||
add_test(NAME unittest COMMAND unittest)
|
||||
add_executable(unittest unittest.cpp)
|
||||
target_compile_features(unittest PRIVATE cxx_std_20)
|
||||
target_link_libraries(unittest PRIVATE ${target_name} GTest::gtest_main GTest::gmock_main)
|
||||
add_test(NAME unittest COMMAND unittest)
|
||||
endif()
|
||||
|
||||
@ -16,7 +16,7 @@ using namespace std::literals;
|
||||
|
||||
// This is fickle, however, it's the only way to do it really. It's a reliable test in practice.
|
||||
|
||||
[[gnu::noinline]] void raw_trace_basic() {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_basic() {
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
// look for within 90 bytes of the start of the function
|
||||
EXPECT_GE(raw_trace.frames[0], reinterpret_cast<uintptr_t>(raw_trace_basic));
|
||||
@ -24,7 +24,7 @@ using namespace std::literals;
|
||||
}
|
||||
|
||||
#ifndef _MSC_VER
|
||||
[[gnu::noinline]] void raw_trace_basic_precise() {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_basic_precise() {
|
||||
a:
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
b:
|
||||
@ -39,7 +39,7 @@ TEST(RawTrace, Basic) {
|
||||
raw_trace_basic_precise();
|
||||
}
|
||||
|
||||
[[gnu::noinline]] void raw_trace_multi_1(std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr> parent) {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_multi_1(std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr> parent) {
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
EXPECT_GE(raw_trace.frames[0], reinterpret_cast<uintptr_t>(raw_trace_multi_1));
|
||||
EXPECT_LE(raw_trace.frames[0], reinterpret_cast<uintptr_t>(raw_trace_multi_1) + 90);
|
||||
@ -47,7 +47,7 @@ TEST(RawTrace, Basic) {
|
||||
EXPECT_LE(raw_trace.frames[1], parent.second);
|
||||
}
|
||||
|
||||
[[gnu::noinline]] void raw_trace_multi_top() {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_multi_top() {
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
raw_trace_multi_1({reinterpret_cast<uintptr_t>(raw_trace_multi_top), reinterpret_cast<uintptr_t>(raw_trace_multi_top) + 300});
|
||||
EXPECT_GE(raw_trace.frames[0], reinterpret_cast<uintptr_t>(raw_trace_multi_top));
|
||||
@ -55,7 +55,7 @@ TEST(RawTrace, Basic) {
|
||||
}
|
||||
|
||||
#ifndef _MSC_VER
|
||||
[[gnu::noinline]] void raw_trace_multi_precise_2(std::vector<std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr>>& parents) {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_multi_precise_2(std::vector<std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr>>& parents) {
|
||||
a:
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
b:
|
||||
@ -67,7 +67,7 @@ TEST(RawTrace, Basic) {
|
||||
}
|
||||
}
|
||||
|
||||
[[gnu::noinline]] void raw_trace_multi_precise_1(std::vector<std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr>>& parents) {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_multi_precise_1(std::vector<std::pair<cpptrace::frame_ptr, cpptrace::frame_ptr>>& parents) {
|
||||
a:
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
b:
|
||||
@ -83,7 +83,7 @@ TEST(RawTrace, Basic) {
|
||||
d:;
|
||||
}
|
||||
|
||||
[[gnu::noinline]] void raw_trace_multi_precise_top() {
|
||||
CPPTRACE_FORCE_NO_INLINE void raw_trace_multi_precise_top() {
|
||||
a:
|
||||
auto raw_trace = cpptrace::generate_raw_trace();
|
||||
b:
|
||||
@ -102,7 +102,7 @@ TEST(RawTrace, MultipleCalls) {
|
||||
raw_trace_multi_precise_top();
|
||||
}
|
||||
|
||||
[[gnu::noinline]] void stacktrace_basic() {
|
||||
CPPTRACE_FORCE_NO_INLINE void stacktrace_basic() {
|
||||
auto line = __LINE__ + 1;
|
||||
auto trace = cpptrace::generate_trace();
|
||||
EXPECT_THAT(trace.frames[0].filename, testing::EndsWith("unittest.cpp"));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user