From 968bfdb72ab443317cfc105c18183977891134e1 Mon Sep 17 00:00:00 2001 From: Gordon Date: Sun, 26 Jul 2020 17:18:25 +0100 Subject: [PATCH] Crash when debugging tests by disabling thread_local in /MT context --- tests/SCsub | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/SCsub b/tests/SCsub index 9c32eb8ec30..84c9fc1ffed 100644 --- a/tests/SCsub +++ b/tests/SCsub @@ -9,6 +9,13 @@ env_tests = env.Clone() # Enable test framework and inform it of configuration method. env_tests.Append(CPPDEFINES=["DOCTEST_CONFIG_IMPLEMENT"]) +# We must disable the THREAD_LOCAL entirely in doctest to prevent crashes on debugging +# Since we link with /MT thread_local is always expired when the header is used +# So the debugger crashes the engine and it causes weird errors +# Explained in https://github.com/onqtam/doctest/issues/401 +if env_tests["platform"] == "windows": + env_tests.Append(CPPDEFINES=[("DOCTEST_THREAD_LOCAL", "")]) + env_tests.add_source_files(env.tests_sources, "*.cpp") lib = env_tests.add_library("tests", env.tests_sources)