@@ -122,6 +122,42 @@ target_link_libraries(${target}
122
122
# Define test
123
123
#
124
124
125
+ if (OPTION_BUILD_THREAD_SANITIZER AND OPTION_BUILD_LOADERS_CS)
126
+ # TODO: This test fails when run with thread sanitizer (this happens when C# loader is enabled):
127
+ #
128
+ # WARNING: ThreadSanitizer: signal-unsafe call inside of a signal (pid=13823)
129
+ # #0 free ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:706 (libtsan.so.2+0x47e82)
130
+ # #1 <null> <null> (libdw.so.1+0x56c62)
131
+ # #2 backward::TraceResolverImpl<backward::system_tag::linux_tag>::~TraceResolverImpl() /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:3479 (libbacktrace_plugind.so+0xf95c)
132
+ # #3 backward::TraceResolver::~TraceResolver() /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:3694 (libbacktrace_plugind.so+0xf95c)
133
+ # #4 backward::Printer::~Printer() /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:3986 (libbacktrace_plugind.so+0xf95c)
134
+ # #5 backward::SignalHandling::handleSignal(int, siginfo_t*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:4265 (libbacktrace_plugind.so+0xf95c)
135
+ # #6 backward::SignalHandling::sig_handler(int, siginfo_t*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:4276 (libbacktrace_plugind.so+0xfff0)
136
+ # #7 <null> <null> (libcoreclr.so+0x4afbdc)
137
+ # #8 backward::SignalHandling::sig_handler(int, siginfo_t*, void*) /usr/local/metacall/build/_deps/backwardcpp-src/backward.hpp:4279 (libbacktrace_plugind.so+0xffff)
138
+ # #9 <null> <null> (libcoreclr.so+0x4afbdc)
139
+ # #10 simple_netcore_create /usr/local/metacall/source/loaders/cs_loader/source/simple_netcore.cpp:42 (libcs_loaderd.so+0x108de)
140
+ # #11 cs_loader_impl_initialize /usr/local/metacall/source/loaders/cs_loader/source/cs_loader_impl.c:236 (libcs_loaderd.so+0xf5fe)
141
+ # #12 loader_impl_initialize /usr/local/metacall/source/loader/source/loader_impl.c:367 (libmetacalld.so+0x306a3)
142
+ # #13 loader_impl_load_from_file /usr/local/metacall/source/loader/source/loader_impl.c:822 (libmetacalld.so+0x308b8)
143
+ # #14 loader_load_from_file /usr/local/metacall/source/loader/source/loader.c:307 (libmetacalld.so+0x2e101)
144
+ # #15 metacall_load_from_file /usr/local/metacall/source/metacall/source/metacall.c:348 (libmetacalld.so+0x32bef)
145
+ # #16 py_loader_port_load_from_file_impl /usr/local/metacall/source/loaders/py_loader/source/py_loader_port.c:190 (libpy_loaderd.so+0x10a02)
146
+ # #17 py_loader_port_load_from_file_export /usr/local/metacall/source/loaders/py_loader/source/py_loader_port.c:244 (libpy_loaderd.so+0x10d34)
147
+ # #18 <null> <null> (libpython3.9.so.1.0+0x10cc73)
148
+ # #19 loader_impl_load_from_memory /usr/local/metacall/source/loader/source/loader_impl.c:968 (libmetacalld.so+0x30eba)
149
+ # #20 loader_load_from_memory /usr/local/metacall/source/loader/source/loader.c:327 (libmetacalld.so+0x2e201)
150
+ # #21 metacall_load_from_memory /usr/local/metacall/source/metacall/source/metacall.c:357 (libmetacalld.so+0x32c30)
151
+ # #22 metacall_python_port_import_test_DefaultConstructor_Test::TestBody() /usr/local/metacall/source/tests/metacall_python_port_import_test/source/metacall_python_port_import_test.cpp:48 (metacall-python-port-import-testd+0x20aa5)
152
+ # #23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (metacall-python-port-import-testd+0x4e186)
153
+ # #24 <null> <null> (libc.so.6+0x29209)
154
+ #
155
+ # SUMMARY: ThreadSanitizer: signal-unsafe call inside of a signal (/usr/lib/x86_64-linux-gnu/libdw.so.1+0x56c62)
156
+ #
157
+ # For solving this, we should enable C# support for sanitizers and debug it properly
158
+ return ()
159
+ endif ()
160
+
125
161
add_test (NAME ${target}
126
162
COMMAND $<TARGET_FILE:${target} >
127
163
WORKING_DIRECTORY ${LOADER_SCRIPT_PATH} /ramda
0 commit comments