From f8ebdd26be4c7c82bed87698ae3961f859f249b1 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Sat, 4 May 2024 11:39:52 -0500 Subject: [PATCH] Small test refactor --- CMakeLists.txt | 32 +----------- ci/test-all-configs.py | 12 ++--- test/CMakeLists.txt | 36 ++++++++++++++ test/expected/linux.libdl.txt | 72 +++++++++++++-------------- test/expected/linux.txt | 70 +++++++++++++------------- test/expected/macos.clang.libdl.txt | 70 +++++++++++++------------- test/expected/macos.clang.txt | 70 +++++++++++++------------- test/expected/macos.gcc.addr2line.txt | 70 +++++++++++++------------- test/expected/macos.gcc.libdl.txt | 70 +++++++++++++------------- test/expected/macos.gcc.txt | 70 +++++++++++++------------- test/expected/windows.gcc.txt | 70 +++++++++++++------------- test/expected/windows.txt | 70 +++++++++++++------------- test/{test.cpp => integration.cpp} | 4 +- 13 files changed, 361 insertions(+), 355 deletions(-) create mode 100644 test/CMakeLists.txt rename test/{test.cpp => integration.cpp} (95%) diff --git a/CMakeLists.txt b/CMakeLists.txt index d5e1002..1192791 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -574,36 +574,6 @@ endif() # =============================================== Demo/test =============================================== -macro(add_test_dependencies exec_name) - target_compile_features(${exec_name} PRIVATE cxx_std_11) - target_link_libraries(${exec_name} PRIVATE ${target_name}) - # Clang has been fast to adopt dwarf 5, other tools (e.g. addr2line from binutils) have not - check_cxx_compiler_flag("-gdwarf-4" HAS_DWARF4) - if(HAS_DWARF4) - target_compile_options(${exec_name} PRIVATE "$<$:-gdwarf-4>") - endif() - # TODO: add debug info for mingw clang? - if(CPPTRACE_BUILD_TEST_RDYNAMIC) - set_property(TARGET ${exec_name} PROPERTY ENABLE_EXPORTS ON) - endif() -endmacro() - if(CPPTRACE_BUILD_TESTING) - add_executable(test test/test.cpp) - add_executable(demo test/demo.cpp) - add_executable(c_demo test/ctrace_demo.c) - - add_test_dependencies(test) - add_test_dependencies(demo) - add_test_dependencies(c_demo) - - if(UNIX) - add_executable(signal_demo test/signal_demo.cpp) - target_compile_features(signal_demo PRIVATE cxx_std_11) - target_link_libraries(signal_demo PRIVATE ${target_name}) - - add_executable(signal_tracer test/signal_tracer.cpp) - target_compile_features(signal_tracer PRIVATE cxx_std_11) - target_link_libraries(signal_tracer PRIVATE ${target_name}) - endif() + add_subdirectory(test) endif() diff --git a/ci/test-all-configs.py b/ci/test-all-configs.py index b991388..057d7aa 100644 --- a/ci/test-all-configs.py +++ b/ci/test-all-configs.py @@ -261,36 +261,36 @@ def build_full_or_auto(matrix): def test(matrix): if platform.system() != "Windows": return run_test( - "./test", + "./integration", (matrix["compiler"], matrix["unwind"], matrix["symbols"], matrix["demangle"]) ) else: if matrix["compiler"] == "g++": return run_test( - f".\\test.exe", + f".\\integration.exe", (matrix["compiler"], matrix["unwind"], matrix["symbols"], matrix["demangle"]) ) else: return run_test( - f".\\{matrix['target']}\\test.exe", + f".\\{matrix['target']}\\integration.exe", (matrix["compiler"], matrix["unwind"], matrix["symbols"], matrix["demangle"]) ) def test_full_or_auto(matrix): if platform.system() != "Windows": return run_test( - "./test", + "./integration", (matrix["compiler"],) ) else: if matrix["compiler"] == "g++": return run_test( - f".\\test.exe", + f".\\integration.exe", (matrix["compiler"],) ) else: return run_test( - f".\\{matrix['target']}\\test.exe", + f".\\{matrix['target']}\\integration.exe", (matrix["compiler"],) ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..29e5617 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,36 @@ +include(CTest) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + +macro(add_test_dependencies exec_name) + target_compile_features(${exec_name} PRIVATE cxx_std_11) + target_link_libraries(${exec_name} PRIVATE ${target_name}) + # Clang has been fast to adopt dwarf 5, other tools (e.g. addr2line from binutils) have not + check_cxx_compiler_flag("-gdwarf-4" HAS_DWARF4) + if(HAS_DWARF4) + target_compile_options(${exec_name} PRIVATE "$<$:-gdwarf-4>") + endif() + # TODO: add debug info for mingw clang? + if(CPPTRACE_BUILD_TEST_RDYNAMIC) + set_property(TARGET ${exec_name} PROPERTY ENABLE_EXPORTS ON) + endif() +endmacro() + + +add_executable(integration integration.cpp) +add_executable(demo demo.cpp) +add_executable(c_demo ctrace_demo.c) + +add_test_dependencies(integration) +add_test_dependencies(demo) +add_test_dependencies(c_demo) + +if(UNIX) + add_executable(signal_demo signal_demo.cpp) + target_compile_features(signal_demo PRIVATE cxx_std_11) + target_link_libraries(signal_demo PRIVATE ${target_name}) + + add_executable(signal_tracer signal_tracer.cpp) + target_compile_features(signal_tracer PRIVATE cxx_std_11) + target_link_libraries(signal_tracer PRIVATE ${target_name}) +endif() diff --git a/test/expected/linux.libdl.txt b/test/expected/linux.libdl.txt index cff2ac4..4be990c 100644 --- a/test/expected/linux.libdl.txt +++ b/test/expected/linux.libdl.txt @@ -1,38 +1,38 @@ -./test||4294967295||trace() -./test||4294967295||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) -./test||4294967295||jjj(void (* const*)(float)) -./test||4294967295||iii(Foo::Bar) -./test||4294967295||hhh(int (* (*) [10]) [20]) -./test||4294967295||ggg(int const* const*) -./test||4294967295||fff(int (S::*)(float) const volatile &&) -./test||4294967295||eee(int (*(* const* volatile (*) [10])())(float)) -./test||4294967295||ddd(int (* (*) [10])()) -./test||4294967295||ccc(int (*) [5][6][7][8]) -./test||4294967295||bbb(int (* const (&) [5])(float, int const&)) -./test||4294967295||aaa(int (&) [5]) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||foo(int) -./test||4294967295||void foo(int, int) -./test||4294967295||void foo(int, int, int) -./test||4294967295||void foo(int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int, int, int, int, int) -./test||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) -./test||4294967295||function_two(int, float) -./test||4294967295||function_one(int) -./test||4294967295||main +./integration||4294967295||trace() +./integration||4294967295||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) +./integration||4294967295||jjj(void (* const*)(float)) +./integration||4294967295||iii(Foo::Bar) +./integration||4294967295||hhh(int (* (*) [10]) [20]) +./integration||4294967295||ggg(int const* const*) +./integration||4294967295||fff(int (S::*)(float) const volatile &&) +./integration||4294967295||eee(int (*(* const* volatile (*) [10])())(float)) +./integration||4294967295||ddd(int (* (*) [10])()) +./integration||4294967295||ccc(int (*) [5][6][7][8]) +./integration||4294967295||bbb(int (* const (&) [5])(float, int const&)) +./integration||4294967295||aaa(int (&) [5]) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||foo(int) +./integration||4294967295||void foo(int, int) +./integration||4294967295||void foo(int, int, int) +./integration||4294967295||void foo(int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int, int, int, int, int) +./integration||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) +./integration||4294967295||function_two(int, float) +./integration||4294967295||function_one(int) +./integration||4294967295||main /lib/x86_64-linux-gnu/libc.so.6||4294967295|| /lib/x86_64-linux-gnu/libc.so.6||4294967295||__libc_start_main -./test||4294967295||_start \ No newline at end of file +./integration||4294967295||_start \ No newline at end of file diff --git a/test/expected/linux.txt b/test/expected/linux.txt index 689e824..5cc1d3d 100644 --- a/test/expected/linux.txt +++ b/test/expected/linux.txt @@ -1,38 +1,38 @@ -test/test.cpp||23||trace() -test/test.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) -test/test.cpp||37||jjj(void (* const*)(float)) -test/test.cpp||45||iii(Foo::Bar) -test/test.cpp||55||hhh(int (* (*) [10]) [20]) -test/test.cpp||59||ggg(int const* const*) -test/test.cpp||63||fff(int (S::*)(float) const volatile &&) -test/test.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) -test/test.cpp||72||ddd(int (* (*) [10])()) -test/test.cpp||76||ccc(int (*) [5][6][7][8]) -test/test.cpp||80||bbb(int (* const (&) [5])(float, int const&)) -test/test.cpp||85||aaa(int (&) [5]) -test/test.cpp||94||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||106||void foo(int, int) -test/test.cpp||106||void foo(int, int, int) -test/test.cpp||106||void foo(int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) -test/test.cpp||112||function_two(int, float) -test/test.cpp||118||function_one(int) -test/test.cpp||125||main +test/integration.cpp||23||trace() +test/integration.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) +test/integration.cpp||37||jjj(void (* const*)(float)) +test/integration.cpp||45||iii(Foo::Bar) +test/integration.cpp||55||hhh(int (* (*) [10]) [20]) +test/integration.cpp||59||ggg(int const* const*) +test/integration.cpp||63||fff(int (S::*)(float) const volatile &&) +test/integration.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) +test/integration.cpp||72||ddd(int (* (*) [10])()) +test/integration.cpp||76||ccc(int (*) [5][6][7][8]) +test/integration.cpp||80||bbb(int (* const (&) [5])(float, int const&)) +test/integration.cpp||85||aaa(int (&) [5]) +test/integration.cpp||94||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||106||void foo(int, int) +test/integration.cpp||106||void foo(int, int, int) +test/integration.cpp||106||void foo(int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) +test/integration.cpp||112||function_two(int, float) +test/integration.cpp||118||function_one(int) +test/integration.cpp||125||main ./csu/../sysdeps/nptl/libc_start_call_main.h||58||__libc_start_call_main ./csu/../csu/libc-start.c||392||__libc_start_main_impl ./test||4294967295|| \ No newline at end of file diff --git a/test/expected/macos.clang.libdl.txt b/test/expected/macos.clang.libdl.txt index 11ba21f..8d0b7b8 100644 --- a/test/expected/macos.clang.libdl.txt +++ b/test/expected/macos.clang.libdl.txt @@ -1,36 +1,36 @@ -build/test||4294967295||trace() -build/test||4294967295||www(std::__1::basic_string, std::__1::allocator>&&, std::__1::basic_string, std::__1::allocator> const&, std::__1::vector, std::__1::allocator>*, std::__1::allocator, std::__1::allocator>*>>&&) -build/test||4294967295||jjj(void (* const*)(float)) -build/test||4294967295||iii(Foo::Bar) -build/test||4294967295||hhh(int (* (*) [10]) [20]) -build/test||4294967295||ggg(int const* const*) -build/test||4294967295||fff(int (S::*)(float) const volatile &&) -build/test||4294967295||eee(int (* (* const* volatile (*) [10])())(float)) -build/test||4294967295||ddd(int (* (*) [10])()) -build/test||4294967295||ccc(int (*) [5][6][7][8]) -build/test||4294967295||bbb(int (* const (&) [5])(float, int const&)) -build/test||4294967295||aaa(int (&) [5]) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||void foo(int, int) -build/test||4294967295||void foo(int, int, int) -build/test||4294967295||void foo(int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) -build/test||4294967295||function_two(int, float) -build/test||4294967295||function_one(int) -build/test||4294967295||main +build/integration||4294967295||trace() +build/integration||4294967295||www(std::__1::basic_string, std::__1::allocator>&&, std::__1::basic_string, std::__1::allocator> const&, std::__1::vector, std::__1::allocator>*, std::__1::allocator, std::__1::allocator>*>>&&) +build/integration||4294967295||jjj(void (* const*)(float)) +build/integration||4294967295||iii(Foo::Bar) +build/integration||4294967295||hhh(int (* (*) [10]) [20]) +build/integration||4294967295||ggg(int const* const*) +build/integration||4294967295||fff(int (S::*)(float) const volatile &&) +build/integration||4294967295||eee(int (* (* const* volatile (*) [10])())(float)) +build/integration||4294967295||ddd(int (* (*) [10])()) +build/integration||4294967295||ccc(int (*) [5][6][7][8]) +build/integration||4294967295||bbb(int (* const (&) [5])(float, int const&)) +build/integration||4294967295||aaa(int (&) [5]) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||void foo(int, int) +build/integration||4294967295||void foo(int, int, int) +build/integration||4294967295||void foo(int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) +build/integration||4294967295||function_two(int, float) +build/integration||4294967295||function_one(int) +build/integration||4294967295||main /usr/lib/dyld||4294967295||start \ No newline at end of file diff --git a/test/expected/macos.clang.txt b/test/expected/macos.clang.txt index da3bc22..4d76acb 100644 --- a/test/expected/macos.clang.txt +++ b/test/expected/macos.clang.txt @@ -1,38 +1,38 @@ -test/test.cpp||23||trace() -test/test.cpp||33||www(std::__1::basic_string, std::__1::allocator>&&, std::__1::basic_string, std::__1::allocator> const&, std::__1::vector, std::__1::allocator>*, std::__1::allocator, std::__1::allocator>*>>&&) -test/test.cpp||37||jjj(void (* const*)(float)) -test/test.cpp||45||iii(Foo::Bar) -test/test.cpp||55||hhh(int (* (*) [10]) [20]) -test/test.cpp||59||ggg(int const* const*) -test/test.cpp||63||fff(int (S::*)(float) const volatile &&) -test/test.cpp||68||eee(int (* (* const* volatile (*) [10])())(float)) -test/test.cpp||72||ddd(int (* (*) [10])()) -test/test.cpp||76||ccc(int (*) [5][6][7][8]) -test/test.cpp||80||bbb(int (* const (&) [5])(float, int const&)) -test/test.cpp||85||aaa(int (&) [5]) -test/test.cpp||94||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||106||void foo(int, int) -test/test.cpp||106||void foo(int, int, int) -test/test.cpp||106||void foo(int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) -test/test.cpp||112||function_two(int, float) -test/test.cpp||118||function_one(int) -test/test.cpp||125||main +test/integration.cpp||23||trace() +test/integration.cpp||33||www(std::__1::basic_string, std::__1::allocator>&&, std::__1::basic_string, std::__1::allocator> const&, std::__1::vector, std::__1::allocator>*, std::__1::allocator, std::__1::allocator>*>>&&) +test/integration.cpp||37||jjj(void (* const*)(float)) +test/integration.cpp||45||iii(Foo::Bar) +test/integration.cpp||55||hhh(int (* (*) [10]) [20]) +test/integration.cpp||59||ggg(int const* const*) +test/integration.cpp||63||fff(int (S::*)(float) const volatile &&) +test/integration.cpp||68||eee(int (* (* const* volatile (*) [10])())(float)) +test/integration.cpp||72||ddd(int (* (*) [10])()) +test/integration.cpp||76||ccc(int (*) [5][6][7][8]) +test/integration.cpp||80||bbb(int (* const (&) [5])(float, int const&)) +test/integration.cpp||85||aaa(int (&) [5]) +test/integration.cpp||94||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||106||void foo(int, int) +test/integration.cpp||106||void foo(int, int, int) +test/integration.cpp||106||void foo(int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) +test/integration.cpp||112||function_two(int, float) +test/integration.cpp||118||function_one(int) +test/integration.cpp||125||main ./csu/../sysdeps/nptl/libc_start_call_main.h||58||__libc_start_call_main ./csu/../csu/libc-start.c||392||__libc_start_main_impl ./test||4294967295|| \ No newline at end of file diff --git a/test/expected/macos.gcc.addr2line.txt b/test/expected/macos.gcc.addr2line.txt index 3a587af..513c4ca 100644 --- a/test/expected/macos.gcc.addr2line.txt +++ b/test/expected/macos.gcc.addr2line.txt @@ -1,38 +1,38 @@ -test/test.cpp||23||trace() -test/test.cpp||33||www(std::__cxx11::basic_string, std::allocator>&&, std::__cxx11::basic_string, std::allocator> const&, std::vector, std::allocator>*, std::allocator, std::allocator>*>>&&) -test/test.cpp||37||jjj(void (* const*)(float)) -test/test.cpp||45||iii(Foo::Bar) -test/test.cpp||55||hhh(int (* (*) [10]) [20]) -test/test.cpp||59||ggg(int const* const*) -test/test.cpp||63||fff(int (S::*)(float) const volatile &&) -test/test.cpp||68||eee(int (* (* const* volatile (*) [10])())(float)) -test/test.cpp||72||ddd(int (* (*) [10])()) -test/test.cpp||76||ccc(int (*) [5][6][7][8]) -test/test.cpp||80||bbb(int (* const (&) [5])(float, int const&)) -test/test.cpp||85||aaa(int (&) [5]) -test/test.cpp||94||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||106||void foo(int, int) -test/test.cpp||106||void foo(int, int, int) -test/test.cpp||106||void foo(int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) -test/test.cpp||112||function_two(int, float) -test/test.cpp||118||function_one(int) -test/test.cpp||125||main +test/integration.cpp||23||trace() +test/integration.cpp||33||www(std::__cxx11::basic_string, std::allocator>&&, std::__cxx11::basic_string, std::allocator> const&, std::vector, std::allocator>*, std::allocator, std::allocator>*>>&&) +test/integration.cpp||37||jjj(void (* const*)(float)) +test/integration.cpp||45||iii(Foo::Bar) +test/integration.cpp||55||hhh(int (* (*) [10]) [20]) +test/integration.cpp||59||ggg(int const* const*) +test/integration.cpp||63||fff(int (S::*)(float) const volatile &&) +test/integration.cpp||68||eee(int (* (* const* volatile (*) [10])())(float)) +test/integration.cpp||72||ddd(int (* (*) [10])()) +test/integration.cpp||76||ccc(int (*) [5][6][7][8]) +test/integration.cpp||80||bbb(int (* const (&) [5])(float, int const&)) +test/integration.cpp||85||aaa(int (&) [5]) +test/integration.cpp||94||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||106||void foo(int, int) +test/integration.cpp||106||void foo(int, int, int) +test/integration.cpp||106||void foo(int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) +test/integration.cpp||112||function_two(int, float) +test/integration.cpp||118||function_one(int) +test/integration.cpp||125||main ./csu/../sysdeps/nptl/libc_start_call_main.h||58||__libc_start_call_main ./csu/../csu/libc-start.c||392||__libc_start_main_impl ./test||4294967295|| \ No newline at end of file diff --git a/test/expected/macos.gcc.libdl.txt b/test/expected/macos.gcc.libdl.txt index 222576c..5a27f22 100644 --- a/test/expected/macos.gcc.libdl.txt +++ b/test/expected/macos.gcc.libdl.txt @@ -1,36 +1,36 @@ -build/test||4294967295||trace() -build/test||4294967295||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) -build/test||4294967295||jjj(void (* const*)(float)) -build/test||4294967295||iii(Foo::Bar) -build/test||4294967295||hhh(int (* (*) [10]) [20]) -build/test||4294967295||ggg(int const* const*) -build/test||4294967295||fff(int (S::*)(float) const volatile &&) -build/test||4294967295||eee(int (*(* const* volatile (*) [10])())(float)) -build/test||4294967295||ddd(int (* (*) [10])()) -build/test||4294967295||ccc(int (*) [5][6][7][8]) -build/test||4294967295||bbb(int (* const (&) [5])(float, int const&)) -build/test||4294967295||aaa(int (&) [5]) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||foo(int) -build/test||4294967295||void foo(int, int) -build/test||4294967295||void foo(int, int, int) -build/test||4294967295||void foo(int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int, int) -build/test||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) -build/test||4294967295||function_two(int, float) -build/test||4294967295||function_one(int) -build/test||4294967295||main +build/integration||4294967295||trace() +build/integration||4294967295||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) +build/integration||4294967295||jjj(void (* const*)(float)) +build/integration||4294967295||iii(Foo::Bar) +build/integration||4294967295||hhh(int (* (*) [10]) [20]) +build/integration||4294967295||ggg(int const* const*) +build/integration||4294967295||fff(int (S::*)(float) const volatile &&) +build/integration||4294967295||eee(int (*(* const* volatile (*) [10])())(float)) +build/integration||4294967295||ddd(int (* (*) [10])()) +build/integration||4294967295||ccc(int (*) [5][6][7][8]) +build/integration||4294967295||bbb(int (* const (&) [5])(float, int const&)) +build/integration||4294967295||aaa(int (&) [5]) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||foo(int) +build/integration||4294967295||void foo(int, int) +build/integration||4294967295||void foo(int, int, int) +build/integration||4294967295||void foo(int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int, int) +build/integration||4294967295||void foo(int, int, int, int, int, int, int, int, int, int) +build/integration||4294967295||function_two(int, float) +build/integration||4294967295||function_one(int) +build/integration||4294967295||main /usr/lib/dyld||4294967295||start \ No newline at end of file diff --git a/test/expected/macos.gcc.txt b/test/expected/macos.gcc.txt index 689e824..5cc1d3d 100644 --- a/test/expected/macos.gcc.txt +++ b/test/expected/macos.gcc.txt @@ -1,38 +1,38 @@ -test/test.cpp||23||trace() -test/test.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) -test/test.cpp||37||jjj(void (* const*)(float)) -test/test.cpp||45||iii(Foo::Bar) -test/test.cpp||55||hhh(int (* (*) [10]) [20]) -test/test.cpp||59||ggg(int const* const*) -test/test.cpp||63||fff(int (S::*)(float) const volatile &&) -test/test.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) -test/test.cpp||72||ddd(int (* (*) [10])()) -test/test.cpp||76||ccc(int (*) [5][6][7][8]) -test/test.cpp||80||bbb(int (* const (&) [5])(float, int const&)) -test/test.cpp||85||aaa(int (&) [5]) -test/test.cpp||94||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||106||void foo(int, int) -test/test.cpp||106||void foo(int, int, int) -test/test.cpp||106||void foo(int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) -test/test.cpp||112||function_two(int, float) -test/test.cpp||118||function_one(int) -test/test.cpp||125||main +test/integration.cpp||23||trace() +test/integration.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) +test/integration.cpp||37||jjj(void (* const*)(float)) +test/integration.cpp||45||iii(Foo::Bar) +test/integration.cpp||55||hhh(int (* (*) [10]) [20]) +test/integration.cpp||59||ggg(int const* const*) +test/integration.cpp||63||fff(int (S::*)(float) const volatile &&) +test/integration.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) +test/integration.cpp||72||ddd(int (* (*) [10])()) +test/integration.cpp||76||ccc(int (*) [5][6][7][8]) +test/integration.cpp||80||bbb(int (* const (&) [5])(float, int const&)) +test/integration.cpp||85||aaa(int (&) [5]) +test/integration.cpp||94||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||106||void foo(int, int) +test/integration.cpp||106||void foo(int, int, int) +test/integration.cpp||106||void foo(int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) +test/integration.cpp||112||function_two(int, float) +test/integration.cpp||118||function_one(int) +test/integration.cpp||125||main ./csu/../sysdeps/nptl/libc_start_call_main.h||58||__libc_start_call_main ./csu/../csu/libc-start.c||392||__libc_start_main_impl ./test||4294967295|| \ No newline at end of file diff --git a/test/expected/windows.gcc.txt b/test/expected/windows.gcc.txt index 87a4d5c..e01de81 100644 --- a/test/expected/windows.gcc.txt +++ b/test/expected/windows.gcc.txt @@ -1,38 +1,38 @@ -test/test.cpp||23||trace() -test/test.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) -test/test.cpp||37||jjj(void (* const*)(float)) -test/test.cpp||45||iii(Foo::Bar) -test/test.cpp||55||hhh(int (* (*) [10]) [20]) -test/test.cpp||59||ggg(int const* const*) -test/test.cpp||63||fff(int (S::*)(float) const volatile &&) -test/test.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) -test/test.cpp||72||ddd(int (* (*) [10])()) -test/test.cpp||76||ccc(int (*) [5][6][7][8]) -test/test.cpp||80||bbb(int (* const (&) [5])(float, int const&)) -test/test.cpp||85||aaa(int (&) [5]) -test/test.cpp||94||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||98||foo(int) -test/test.cpp||106||void foo(int, int) -test/test.cpp||106||void foo(int, int, int) -test/test.cpp||106||void foo(int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int) -test/test.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) -test/test.cpp||112||function_two(int, float) -test/test.cpp||118||function_one(int) -test/test.cpp||125||main +test/integration.cpp||23||trace() +test/integration.cpp||33||www(std::__cxx11::basic_string, std::allocator >&&, std::__cxx11::basic_string, std::allocator > const&, std::vector, std::allocator >*, std::allocator, std::allocator >*> >&&) +test/integration.cpp||37||jjj(void (* const*)(float)) +test/integration.cpp||45||iii(Foo::Bar) +test/integration.cpp||55||hhh(int (* (*) [10]) [20]) +test/integration.cpp||59||ggg(int const* const*) +test/integration.cpp||63||fff(int (S::*)(float) const volatile &&) +test/integration.cpp||68||eee(int (*(* const* volatile (*) [10])())(float)) +test/integration.cpp||72||ddd(int (* (*) [10])()) +test/integration.cpp||76||ccc(int (*) [5][6][7][8]) +test/integration.cpp||80||bbb(int (* const (&) [5])(float, int const&)) +test/integration.cpp||85||aaa(int (&) [5]) +test/integration.cpp||94||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||98||foo(int) +test/integration.cpp||106||void foo(int, int) +test/integration.cpp||106||void foo(int, int, int) +test/integration.cpp||106||void foo(int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int) +test/integration.cpp||106||void foo(int, int, int, int, int, int, int, int, int, int) +test/integration.cpp||112||function_two(int, float) +test/integration.cpp||118||function_one(int) +test/integration.cpp||125||main C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c||272||__tmainCRTStartup C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c||193||mainCRTStartup ||4294967295||BaseThreadInitThunk diff --git a/test/expected/windows.txt b/test/expected/windows.txt index c7d18b7..2092dfd 100644 --- a/test/expected/windows.txt +++ b/test/expected/windows.txt @@ -1,38 +1,38 @@ -test\test.cpp||23||trace() -test\test.cpp||33||www(std::basic_string, std::allocator >*, std::basic_string, std::allocator >&, std::vector, std::allocator > *, std::allocator, std::allocator > *> >*) -test\test.cpp||37||jjj(void(*(*))(float)) -test\test.cpp||45||iii(Foo::Bar) -test\test.cpp||55||hhh(int(*(*)[10])[20]) -test\test.cpp||59||ggg(int**) -test\test.cpp||63||fff(int(S::*)(float)) -test\test.cpp||68||eee(int(*(*(*(*)[10]))())(float)) -test\test.cpp||72||ddd(int(*(*)[10])()) -test\test.cpp||76||ccc(int(*)[5][6][7][8]) -test\test.cpp||80||bbb(int(*(&)[5])(float, int&)) -test\test.cpp||85||aaa(int(&)[5]) -test\test.cpp||94||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||98||foo(int) -test\test.cpp||106||foo(int, int) -test\test.cpp||106||foo(int, int, int) -test\test.cpp||106||foo(int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int, int, int, int, int) -test\test.cpp||106||foo(int, int, int, int, int, int, int, int, int, int) -test\test.cpp||112||function_two(int, float) -test\test.cpp||118||function_one(int) -test\test.cpp||125||main() +test\integration.cpp||23||trace() +test\integration.cpp||33||www(std::basic_string, std::allocator >*, std::basic_string, std::allocator >&, std::vector, std::allocator > *, std::allocator, std::allocator > *> >*) +test\integration.cpp||37||jjj(void(*(*))(float)) +test\integration.cpp||45||iii(Foo::Bar) +test\integration.cpp||55||hhh(int(*(*)[10])[20]) +test\integration.cpp||59||ggg(int**) +test\integration.cpp||63||fff(int(S::*)(float)) +test\integration.cpp||68||eee(int(*(*(*(*)[10]))())(float)) +test\integration.cpp||72||ddd(int(*(*)[10])()) +test\integration.cpp||76||ccc(int(*)[5][6][7][8]) +test\integration.cpp||80||bbb(int(*(&)[5])(float, int&)) +test\integration.cpp||85||aaa(int(&)[5]) +test\integration.cpp||94||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||98||foo(int) +test\integration.cpp||106||foo(int, int) +test\integration.cpp||106||foo(int, int, int) +test\integration.cpp||106||foo(int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int, int, int, int, int) +test\integration.cpp||106||foo(int, int, int, int, int, int, int, int, int, int) +test\integration.cpp||112||function_two(int, float) +test\integration.cpp||118||function_one(int) +test\integration.cpp||125||main() D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl||79||invoke_main() D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl||288||__scrt_common_main_seh() D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl||331||__scrt_common_main() diff --git a/test/test.cpp b/test/integration.cpp similarity index 95% rename from test/test.cpp rename to test/integration.cpp index 894b93d..cdfc52d 100644 --- a/test/test.cpp +++ b/test/integration.cpp @@ -9,8 +9,8 @@ std::string normalize_filename(std::string name) { if(name.find('/') == 0 || (name.find(':') == 1 && std::isupper(name[0]))) { - // build/test if the file is really an object name resolved by libdl - auto p = std::min({name.rfind("test/"), name.rfind("test\\"), name.rfind("build/test")}); + // build/integration if the file is really an object name resolved by libdl + auto p = std::min({name.rfind("test/"), name.rfind("test\\"), name.rfind("build/integration")}); return p == std::string::npos ? name : name.substr(p); } else { return name;