@@ -144,35 +144,13 @@ add_dependencies(${target}
144144#
145145
146146if (OPTION_BUILD_THREAD_SANITIZER)
147- # TODO: This test fails when run with thread sanitizer:
148- #
149- # WARNING: ThreadSanitizer: signal-unsafe call inside of a signal (pid=13983)
150- # #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.2+0x87323)
151- # #1 std::__new_allocator<void*>::allocate(unsigned long, void const*) /usr/include/c++/12/bits/new_allocator.h:137 (libbacktrace_plugind.so+0x7096)
152- # #2 std::allocator_traits<std::allocator<void*> >::allocate(std::allocator<void*>&, unsigned long) /usr/include/c++/12/bits/alloc_traits.h:464 (libbacktrace_plugind.so+0x7096)
153- # #3 std::_Vector_base<void*, std::allocator<void*> >::_M_allocate(unsigned long) /usr/include/c++/12/bits/stl_vector.h:378 (libbacktrace_plugind.so+0x7096)
154- # #4 std::vector<void*, std::allocator<void*> >::_M_default_append(unsigned long) /usr/include/c++/12/bits/vector.tcc:650 (libbacktrace_plugind.so+0x7096)
155- # #5 std::vector<void*, std::allocator<void*> >::resize(unsigned long) /usr/include/c++/12/bits/stl_vector.h:1011 (libbacktrace_plugind.so+0x7453)
156- # #6 backward::StackTraceImpl<backward::system_tag::linux_tag>::load_here(unsigned long, void*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:879 (libbacktrace_plugind.so+0x7453)
157- # #7 backward::StackTraceImpl<backward::system_tag::linux_tag>::load_from(void*, unsigned long, void*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:887 (libbacktrace_plugind.so+0xe4da)
158- # #8 backward::SignalHandling::handleSignal(int, siginfo_t*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:4249 (libbacktrace_plugind.so+0xe4da)
159- # #9 backward::SignalHandling::sig_handler(int, siginfo_t*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:4276 (libbacktrace_plugind.so+0xfff0)
160- # #10 <null> <null> (libcoreclr.so+0x4afbdc)
161- # #11 simple_netcore_create /usr/local/metacall/source/loaders/cs_loader/source/simple_netcore.cpp:42 (libcs_loaderd.so+0x108de)
162- # #12 cs_loader_impl_initialize /usr/local/metacall/source/loaders/cs_loader/source/cs_loader_impl.c:236 (libcs_loaderd.so+0xf5fe)
163- # #13 loader_impl_initialize /usr/local/metacall/source/loader/source/loader_impl.c:367 (libmetacalld.so+0x30673)
164- # #14 loader_impl_load_from_file /usr/local/metacall/source/loader/source/loader_impl.c:822 (libmetacalld.so+0x30888)
165- # #15 loader_load_from_file /usr/local/metacall/source/loader/source/loader.c:307 (libmetacalld.so+0x2e0d1)
166- # #16 metacall_load_from_file /usr/local/metacall/source/metacall/source/metacall.c:348 (libmetacalld.so+0x32bbf)
167- # #17 environment::SetUp() /usr/local/metacall/source/tests/metacall_cs_test/source/environment.cpp:38 (metacall-cs-testd+0x21968)
168- # #18 testing::internal::UnitTestImpl::RunAllTests() <null> (metacall-cs-testd+0x483c1)
169- # #19 <null> <null> (libc.so.6+0x29209)
170- #
171- # SUMMARY: ThreadSanitizer: signal-unsafe call inside of a signal ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 in operator new(unsigned long)
172- #
173- #
174- # For solving this, we should enable C# support for sanitizers and debug it properly
175- return ()
147+ check_tsan_executable ("${DOTNET_CORE_LIBRARY} " DotNET_TSAN )
148+ if (NOT DotNET_TSAN)
149+ # This test fails when run with thread sanitizer due to C# when CoreCLR is not compiled with TSAN:
150+ # coreclr_initialize status (0x8007ff0b)
151+ # For solving this, we should enable C# support for sanitizers and debug it properly
152+ return ()
153+ endif ()
176154endif ()
177155
178156add_test (NAME ${target}
0 commit comments