From 322bb4e5aafe5bcc53a2f3c88ff298eecd54c59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 4 Sep 2023 22:00:10 +0200 Subject: [PATCH] Test: increase stack size for some tests on Emscripten 3.1.27+. 64 kB is... not much to have code with `char toomuch[2*32768]` in it. --- src/Magnum/MeshTools/Test/CMakeLists.txt | 10 +++++++++ src/Magnum/Trade/Test/CMakeLists.txt | 26 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/Magnum/MeshTools/Test/CMakeLists.txt b/src/Magnum/MeshTools/Test/CMakeLists.txt index 393d9df45..c254bb406 100644 --- a/src/Magnum/MeshTools/Test/CMakeLists.txt +++ b/src/Magnum/MeshTools/Test/CMakeLists.txt @@ -41,7 +41,17 @@ corrade_add_test(MeshToolsGenerateLinesTest GenerateLinesTest.cpp LIBRARIES MagnumMeshToolsTestLib MagnumShaders) corrade_add_test(MeshToolsGenerateNormalsTest GenerateNormalsTest.cpp LIBRARIES MagnumMeshToolsTestLib MagnumPrimitives) corrade_add_test(MeshToolsInterleaveTest InterleaveTest.cpp LIBRARIES MagnumMeshToolsTestLib) + corrade_add_test(MeshToolsRemoveDuplicatesTest RemoveDuplicatesTest.cpp LIBRARIES MagnumMeshToolsTestLib) +# In Emscripten 3.1.27, the stack size was reduced from 5 MB (!) to 64 kB: +# https://github.com/emscripten-core/emscripten/pull/18191 +# Two benchmarks in this test use 160 kB of stack space (array of 10000 +# Vector3i's and another 10000 ints), need to increase it a bit to not make it +# crash. +if(CORRADE_TARGET_EMSCRIPTEN AND NOT EMSCRIPTEN_VERSION VERSION_LESS 3.1.27) + set_property(TARGET MeshToolsRemoveDuplicatesTest APPEND_STRING PROPERTY LINK_FLAGS " -s STACK_SIZE=256kB") +endif() + corrade_add_test(MeshToolsSubdivideTest SubdivideTest.cpp LIBRARIES Magnum MagnumPrimitives) corrade_add_test(MeshToolsTipsifyTest TipsifyTest.cpp LIBRARIES MagnumMeshTools) corrade_add_test(MeshToolsTransformTest TransformTest.cpp LIBRARIES MagnumMeshToolsTestLib) diff --git a/src/Magnum/Trade/Test/CMakeLists.txt b/src/Magnum/Trade/Test/CMakeLists.txt index 288ad53c2..e8c060a76 100644 --- a/src/Magnum/Trade/Test/CMakeLists.txt +++ b/src/Magnum/Trade/Test/CMakeLists.txt @@ -71,6 +71,14 @@ corrade_add_test(TradeAbstractSceneConverterTest AbstractSceneConverterTest.cpp target_include_directories(TradeAbstractSceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$) corrade_add_test(TradeAnimationDataTest AnimationDataTest.cpp LIBRARIES MagnumTradeTestLib) +# In Emscripten 3.1.27, the stack size was reduced from 5 MB (!) to 64 kB: +# https://github.com/emscripten-core/emscripten/pull/18191 +# One case in this test uses 65 kB of stack space, need to increase it a bit to +# not make it crash. +if(CORRADE_TARGET_EMSCRIPTEN AND NOT EMSCRIPTEN_VERSION VERSION_LESS 3.1.27) + set_property(TARGET TradeAnimationDataTest APPEND_STRING PROPERTY LINK_FLAGS " -s STACK_SIZE=128kB") +endif() + corrade_add_test(TradeCameraDataTest CameraDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeDataTest DataTest.cpp LIBRARIES MagnumTrade) corrade_add_test(TradeFlatMaterialDataTest FlatMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) @@ -129,12 +137,30 @@ endif() corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeMaterialDataTest MaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) + corrade_add_test(TradeMeshDataTest MeshDataTest.cpp LIBRARIES MagnumTradeTestLib) +# In Emscripten 3.1.27, the stack size was reduced from 5 MB (!) to 64 kB: +# https://github.com/emscripten-core/emscripten/pull/18191 +# One case in this test uses 65 kB of stack space, need to increase it a bit to +# not make it crash. +if(CORRADE_TARGET_EMSCRIPTEN AND NOT EMSCRIPTEN_VERSION VERSION_LESS 3.1.27) + set_property(TARGET TradeMeshDataTest APPEND_STRING PROPERTY LINK_FLAGS " -s STACK_SIZE=128kB") +endif() + corrade_add_test(TradePbrClearCoatMaterialDataTest PbrClearCoatMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradePbrMetallicRoughnessMate___Test PbrMetallicRoughnessMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradePbrSpecularGlossinessMat___Test PbrSpecularGlossinessMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradePhongMaterialDataTest PhongMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) + corrade_add_test(TradeSceneDataTest SceneDataTest.cpp LIBRARIES MagnumTradeTestLib) +# In Emscripten 3.1.27, the stack size was reduced from 5 MB (!) to 64 kB: +# https://github.com/emscripten-core/emscripten/pull/18191 +# One case in this test uses 65 kB of stack space, need to increase it a bit to +# not make it crash. +if(CORRADE_TARGET_EMSCRIPTEN AND NOT EMSCRIPTEN_VERSION VERSION_LESS 3.1.27) + set_property(TARGET TradeSceneDataTest APPEND_STRING PROPERTY LINK_FLAGS " -s STACK_SIZE=128kB") +endif() + corrade_add_test(TradeSkinDataTest SkinDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeTextureDataTest TextureDataTest.cpp LIBRARIES MagnumTrade)