Skip to content

Commit e4d34de

Browse files
julianbrostAl2Klimov
authored andcommitted
Stacktrace test: try to prevent inlining even harder
- Explicitly disable optimizations for MSVC - Make stack_test_func_a bigger
1 parent f004752 commit e4d34de

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

test/base-stacktrace.cpp

+14
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ using namespace icinga;
2323
#pragma GCC push_options
2424
#pragma GCC optimize ("O0")
2525
#pragma clang optimize off
26+
#ifdef _MSVC_VER
27+
#pragma optimize("", off)
28+
#endif /* _MSVC_VER */
2629

2730
BOOST_AUTO_TEST_SUITE(base_stacktrace)
2831

@@ -44,6 +47,14 @@ void stack_test_func_b()
4447
[[gnu::noinline]]
4548
void stack_test_func_a()
4649
{
50+
boost::stacktrace::stacktrace stack;
51+
std::ostringstream obuf;
52+
obuf << StackTraceFormatter(stack);
53+
std::string result = obuf.str();
54+
BOOST_CHECK_MESSAGE(!result.empty(), "stack trace must not be empty");
55+
size_t pos_a = result.find("stack_test_func_a");
56+
BOOST_CHECK_MESSAGE(pos_a != std::string::npos, "'stack_test_func_a' not found\n\n" << result);
57+
4758
stack_test_func_b();
4859
}
4960

@@ -56,3 +67,6 @@ BOOST_AUTO_TEST_SUITE_END()
5667

5768
#pragma GCC pop_options
5869
#pragma clang optimize on
70+
#ifdef _MSVC_VER
71+
#pragma optimize("", on)
72+
#endif /* _MSVC_VER */

0 commit comments

Comments
 (0)