Skip to content

Commit 8b8b7a9

Browse files
committed
Add basic test to ensure all symbols are found
1 parent c5cc4c9 commit 8b8b7a9

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

test/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ endmacro()
3535
add_executable(integration integration.cpp)
3636
add_executable(demo demo.cpp)
3737
add_executable(c_demo ctrace_demo.c)
38+
add_executable(link_test link_test.cpp)
3839

3940
add_test_dependencies(integration)
4041
add_test_dependencies(demo)
4142
add_test_dependencies(c_demo)
43+
add_test_dependencies(link_test)
4244

4345
if(UNIX)
4446
add_executable(signal_demo signal_demo.cpp)

test/link_test.cpp

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#include "cpptrace/basic.hpp"
2+
#include "cpptrace/utils.hpp"
3+
#include <cpptrace/cpptrace.hpp>
4+
5+
#include <iostream>
6+
7+
// These are just here to make sure all symbols are found
8+
9+
int main() {
10+
auto r = cpptrace::raw_trace::current();
11+
r = cpptrace::raw_trace::current(0, 100);
12+
r.resolve();
13+
r.clear();
14+
r.empty();
15+
16+
auto o = cpptrace::object_trace::current();
17+
o = cpptrace::object_trace::current(0, 100);
18+
o.resolve();
19+
o.clear();
20+
o.empty();
21+
22+
auto s = cpptrace::stacktrace::current();
23+
s = cpptrace::stacktrace::current(0, 100);
24+
s.print();
25+
s.print(std::cerr);
26+
s.print(std::cerr, true);
27+
s.print_with_snippets();
28+
s.print_with_snippets(std::cerr);
29+
s.print_with_snippets(std::cerr, true);
30+
s.to_string();
31+
std::cerr<<s<<std::endl;
32+
auto f = s.frames[0];
33+
f.get_object_info();
34+
f.to_string();
35+
f.to_string(true);
36+
std::cerr<<f<<std::endl;
37+
s.clear();
38+
s.empty();
39+
40+
cpptrace::generate_raw_trace();
41+
cpptrace::generate_raw_trace(0, 100);
42+
cpptrace::generate_object_trace();
43+
cpptrace::generate_object_trace(0, 100);
44+
cpptrace::generate_trace();
45+
cpptrace::generate_trace(0, 100);
46+
47+
cpptrace::safe_generate_raw_trace(nullptr, 0, 0);
48+
cpptrace::safe_generate_raw_trace(nullptr, 0, 0, 0);
49+
50+
cpptrace::safe_object_frame sf;
51+
cpptrace::get_safe_object_frame(0, &sf);
52+
cpptrace::can_signal_safe_unwind();
53+
cpptrace::can_get_safe_object_frame();
54+
55+
cpptrace::register_jit_object(nullptr, 0);
56+
cpptrace::unregister_jit_object(nullptr);
57+
cpptrace::clear_all_jit_objects();
58+
59+
cpptrace::lazy_exception l;
60+
l.what();
61+
l.message();
62+
l.trace();
63+
64+
cpptrace::demangle("test");
65+
cpptrace::get_snippet(__FILE__, 1, 1);
66+
cpptrace::isatty(cpptrace::stderr_fileno);
67+
68+
cpptrace::register_terminate_handler();
69+
70+
cpptrace::absorb_trace_exceptions(true);
71+
72+
cpptrace::enable_inlined_call_resolution(true);
73+
74+
cpptrace::set_log_level(cpptrace::log_level::debug);
75+
cpptrace::set_log_callback([](cpptrace::log_level, const char*) {});
76+
cpptrace::use_default_stderr_logger();
77+
78+
cpptrace::experimental::set_cache_mode(cpptrace::cache_mode::hybrid);
79+
80+
cpptrace::experimental::set_dwarf_resolver_line_table_cache_size(100);
81+
cpptrace::experimental::set_dwarf_resolver_disable_aranges(true);
82+
}

0 commit comments

Comments
 (0)