From 3a7d2bfc762415af863138d39dda8e95a668d6a7 Mon Sep 17 00:00:00 2001 From: Bertrand Bellenot Date: Fri, 6 Nov 2026 12:09:28 +0100 Subject: [PATCH] [cmake][win][v642] Disable failing tests with VS 2026 v19.51 --- .../unittests/CppInterOp/CAPITest.cpp | 3 +++ .../CppInterOp/FunctionReflectionTest.cpp | 24 +++++++++++++++++++ .../unittests/CppInterOp/InterpreterTest.cpp | 9 +++++++ .../CppInterOp/ScopeReflectionTest.cpp | 12 ++++++++++ .../CppInterOp/TypeReflectionTest.cpp | 6 +++++ .../CppInterOp/VariableReflectionTest.cpp | 3 +++ test/CMakeLists.txt | 2 +- 7 files changed, 58 insertions(+), 1 deletion(-) diff --git a/interpreter/CppInterOp/unittests/CppInterOp/CAPITest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/CAPITest.cpp index 88cea1b49ecc8..eb80ad272189b 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/CAPITest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/CAPITest.cpp @@ -215,6 +215,9 @@ TYPED_TEST(CppInterOpTest, CAPI_EnumFunctions) { // Exercises the hand-written cppinterop_Evaluate C bridge. The C++ overload // returning Cpp::Box has no C wrapper (NoCWrapper); C clients use this form. TYPED_TEST(CppInterOpTest, CAPI_Evaluate) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif #ifdef EMSCRIPTEN_STATIC_LIBRARY GTEST_SKIP() << "Test fails for Emscipten static library build"; #endif diff --git a/interpreter/CppInterOp/unittests/CppInterOp/FunctionReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/FunctionReflectionTest.cpp index 8470c8b5f73a1..7b2981f1aebb4 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/FunctionReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/FunctionReflectionTest.cpp @@ -729,6 +729,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetFunctionTemplatedDecls) { } TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetFunctionReturnType) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector Decls, SubDecls, TemplateSubDecls; std::string code = R"( namespace N { class C {}; } @@ -872,6 +875,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, } TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_IsAllocator) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector Decls; std::string code = R"( class Klass{ @@ -1570,6 +1576,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_OwnershipAttributes) { } TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetDeallocType) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::string code = R"( #include #include @@ -1829,6 +1838,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetDeallocType) { } TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetAllocType) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::string code = R"( #include #include @@ -2317,6 +2329,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetAllocType) { } TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_GetFunctionSignature) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector Decls; std::string code = R"( class C { @@ -2433,6 +2448,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_ExistsFunctionTemplate) { TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_InstantiateTemplateFunctionFromString) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector interpreter_args = { "-include", "new" }; TestFixture::CreateInterpreter(interpreter_args); std::string code = R"(#include )"; @@ -5448,6 +5466,9 @@ static int JitCallIntNullary(const char* ns, const char* fn) { TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_DeducingThisBlogDeduplication) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif #ifdef EMSCRIPTEN #if CLANG_VERSION_MAJOR > 21 GTEST_SKIP() << "Test fails for Emscripten builds using LLVM 22"; @@ -5543,6 +5564,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, TYPED_TEST(CPPINTEROP_TEST_MODE, FunctionReflection_DeducingThisBlogLambdaForwarding) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif #ifdef EMSCRIPTEN #if CLANG_VERSION_MAJOR > 21 GTEST_SKIP() << "Test fails for Emscripten builds using LLVM 22"; diff --git a/interpreter/CppInterOp/unittests/CppInterOp/InterpreterTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/InterpreterTest.cpp index eb08cbf816efd..2f65e4714eb76 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/InterpreterTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/InterpreterTest.cpp @@ -383,6 +383,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, } TYPED_TEST(CPPINTEROP_TEST_MODE, Interpreter_ActivateInterpreter) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif #ifdef EMSCRIPTEN_STATIC_LIBRARY GTEST_SKIP() << "Test fails for Emscipten static library build"; #endif @@ -778,6 +781,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, Interpreter_EmscriptenExceptionHandling) { } TYPED_TEST(CPPINTEROP_TEST_MODE, Interpreter_CreateInterpreter) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif auto I = TestFixture::CreateInterpreter(); EXPECT_TRUE(I); // Check if the default standard is c++14 @@ -1058,6 +1064,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, SignalHandler_MultipleInterpreters) { #ifndef EMSCRIPTEN TYPED_TEST(CPPINTEROP_TEST_MODE, Interpreter_WrapperCacheIsPerInterpreter) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif if (TypeParam::isOutOfProcess) GTEST_SKIP() << "Test fails for OOP JIT builds"; diff --git a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp index 749b6eba053c3..c5b9481eb6a0e 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp @@ -850,6 +850,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, ScopeReflection_GetScopefromCompleteName) { } TYPED_TEST(CPPINTEROP_TEST_MODE, ScopeReflection_GetNamed) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::string code = R"(namespace N1 { namespace N2 { class C { @@ -1476,6 +1479,9 @@ CODE; } TYPED_TEST(CPPINTEROP_TEST_MODE, ScopeReflection_GetBaseClassOffsetWithAddress) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector Decls; // Layout fixtures own no resources and do not need custom copy/move members. // NOLINTBEGIN(cppcoreguidelines-special-member-functions) @@ -1675,6 +1681,9 @@ template T TrivialFnTemplate() { return T(); } TYPED_TEST(CPPINTEROP_TEST_MODE, ScopeReflection_InstantiateTemplateFunctionFromString) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector interpreter_args = {"-include", "new"}; TestFixture::CreateInterpreter(interpreter_args); std::string code = R"(#include )"; @@ -1858,6 +1867,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, } TYPED_TEST(CPPINTEROP_TEST_MODE, ScopeReflection_IncludeVector) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::string code = R"( #include #include diff --git a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp index 9a642bed830d0..4c6b90fbadcd2 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp @@ -610,6 +610,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, TypeReflection_IsPackExpansionType) { } TYPED_TEST(CPPINTEROP_TEST_MODE, TypeReflection_IsSmartPtrType) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector interpreter_args = {"-include", "new"}; TestFixture::CreateInterpreter(interpreter_args); @@ -819,6 +822,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, TypeReflection_IsVoidPointerType) { } TYPED_TEST(CPPINTEROP_TEST_MODE, TypeReflection_IsSameType) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif std::vector Decls; std::string code = R"( diff --git a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp index ed11ec1dfcee0..add275303dc77 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp @@ -719,6 +719,9 @@ TYPED_TEST(CPPINTEROP_TEST_MODE, CODE TYPED_TEST(CPPINTEROP_TEST_MODE, VariableReflection_VariableOffsetsWithInheritance) { +#if defined(_MSC_VER) && _MSC_VER >= 1951 && !defined(_WIN64) + GTEST_SKIP() << "Disabled on Windows (x86). Needs fixing."; +#endif #ifdef __EMSCRIPTEN__ GTEST_SKIP() << "This test crashes for Emscripten builds of CppInterOp"; #endif diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c4d75e93b327a..5ffe5ea8953d0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -198,7 +198,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/stressHistogram.5.18.00.root ${CMAKE_ ROOT_EXECUTABLE(stressHistogram stressHistogram.cxx LIBRARIES Hist RIO) ROOT_ADD_TEST(test-stresshistogram COMMAND stressHistogram FAILREGEX "FAILED|Error in" LABELS longtest) # The stresshistogram-interpreted test fails on Windows due to unresolved symbols with Visual Studio 2026 -if(MSVC AND MSVC_VERSION GREATER_EQUAL 1951) +if(MSVC AND MSVC_VERSION GREATER_EQUAL 1951 AND NOT "${CMAKE_GENERATOR_PLATFORM}" MATCHES "Win32") set(_willfail WILLFAIL) endif() ROOT_ADD_TEST(test-stresshistogram-interpreted COMMAND ${root_exe} -b -q ${CMAKE_CURRENT_SOURCE_DIR}/stressHistogram.cxx