MikeSchulze / gdUnit4

A Godot Unit Test Framework. Support for GDScript and C# unit testing
MIT License
565 stars 30 forks source link

GD-503: Revisit plugin start and close to avoid loading and unloading errors #503

Closed MikeSchulze closed 3 months ago

MikeSchulze commented 3 months ago

Describe What

Describe Why we want to have a clean plugin start and exit

AnidemDex commented 3 months ago

Godot v4.2.2.stable - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Sat Feb 10 09:41:20 UTC 2024 - X11 - GLES3 (Compatibility) - Mesa Intel(R) UHD Graphics 600 (GLK 2) () - Intel(R) Celeron(R) N4020 CPU @ 1.10GHz (2 Threads)

Version: v4.2.2.stable.official [15073afe3]

Log when closing editor with plugin enabled ```bash $ ./bin/Godot_v4.2.2-stable_linux.x86_64 --edit others/gdunit-plugin/project.godot -v -d Godot Engine v4.2.2.stable.official.15073afe3 - https://godotengine.org TextServer: Added interface "Dummy" TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)" Xshape 1.1 detected. Xinerama 1.1 detected. Xrandr 1.6 detected. Xrender 0.11 detected. Xinput 2.2 detected. XInput: Refreshing devices. XInput: No touch devices found. Vulkan devices: #0: Intel Intel(R) UHD Graphics 600 (GLK 2) - Supported, Integrated Vulkan API 1.3.267 - Forward+ - Using Vulkan Device #0: Intel - Intel(R) UHD Graphics 600 (GLK 2) Optional extension VK_KHR_fragment_shading_rate not found Optional extension VK_GOOGLE_display_timing not found - Vulkan Variable Rate Shading not supported - Vulkan multiview supported: max view count: 16 max instances: 268435455 - Vulkan subgroup: size: 32 min size: 8 max size: 32 stages: STAGE_VERTEX, STAGE_TESSELLATION_CONTROL, STAGE_TESSELLATION_EVALUATION, STAGE_GEOMETRY, STAGE_FRAGMENT, STAGE_COMPUTE supported ops: FEATURE_BASIC, FEATURE_VOTE, FEATURE_ARITHMETIC, FEATURE_BALLOT, FEATURE_SHUFFLE, FEATURE_SHUFFLE_RELATIVE, FEATURE_CLUSTERED, FEATURE_QUAD quad operations in all stages Startup PSO cache (4.2 MiB) ScreenSaver: DBus 1.14.10 detected. PortalDesktop: DBus 1.14.10 detected. Using "default" pen tablet driver... Creating VMA small objects pool for memory type index 0 Shader 'CanvasSdfShaderRD' (group 0) SHA256: fd99060a31380613872c713346d21096ea2beebfbd5a8c09ab919e35f67cd329 Shader 'SkeletonShaderRD' (group 0) SHA256: 58d04267366dc00ac88ff6018451aaad32b0ba1349d0c84c37fe40ffcb91645f Shader 'SortShaderRD' (group 0) SHA256: f708223ee11d6380669522620815bc98bc5e836c6bc620dfdbff52dd70b83734 Shader 'ParticlesShaderRD' (group 0) SHA256: 313c56bac023725110f620bdf9e1e915017495b0ad2b314b4acec93fee494260 Shader 'ParticlesCopyShaderRD' (group 0) SHA256: c76cd2aed74dd99bda998b700615e2504dbfb6afbbf0dacb381b157a85a6e0d0 Shader 'CanvasShaderRD' (group 0) SHA256: 446d51ed83b0516b66a117dfd73204a2f30615626014f8f31309ae9792f71ba9 Shader 'CanvasOcclusionShaderRD' (group 0) SHA256: 5e209b47d7776c94a72cb441941c748525368cbfce3f75461e268583fcd080ff Shader 'ClusterRenderShaderRD' (group 0) SHA256: fb1d4fbcd82f610d09f5d39f94a86b811783bab0a3b39b8020bec7b3275bcc24 Shader 'ClusterStoreShaderRD' (group 0) SHA256: 5ee452df7872e207402b3f6d272b5774037c7528f6d432978170672069513be6 Shader 'ClusterDebugShaderRD' (group 0) SHA256: aa9d76b3c8577da7c3dd45e75e7c9dddf37015fa35abbe3a086ed3cd44489332 Shader 'SceneForwardClusteredShaderRD' (group 0) SHA256: 8becad8ff5811f5502ec6497d84e8e19a2f86b52e45002eebde297651540200b Shader 'SceneForwardClusteredShaderRD' (group 1) SHA256: f48493299171fe58745c7dce9cc8b67ce272ea2bd3870087de2c5e8d537e7060 Shader 'SceneForwardClusteredShaderRD' (group 2) SHA256: c9d3199a78b4ca5c878ba86a7811aa126262a1e70020f616cf362a81c93e95b2 Shader 'SceneForwardClusteredShaderRD' (group 3) SHA256: 4fd32e97172218ec748d5bdfc64f92d5c5b740532c971967fd426dc82dabf9a0 Shader 'ResolveShaderRD' (group 0) SHA256: bd263b8dec1117eb8bc00d6ba8e624d99358fcfe298981dd5605d3e70bf41c7b Shader 'TaaResolveShaderRD' (group 0) SHA256: d657e6b8741b6ae510c90bdbe81f9f96a44d1a629220a3a3bd6a54b268bc7ab0 Shader 'Fsr2DepthClipPassShaderRD' (group 0) SHA256: a751c296098b405fb09f1d2320f737bfceca2fc65368068aab683d5a54a0742f Shader 'Fsr2ReconstructPreviousDepthPassShaderRD' (group 0) SHA256: 44aa39923955a9bd54dbeb57c5e9b29f699d03c94850a04901a5b6d0029e171b Shader 'Fsr2LockPassShaderRD' (group 0) SHA256: 78654d62578e63f8a963a768ab063dbbddefee373506028988650be0a99a1a97 Shader 'Fsr2AccumulatePassShaderRD' (group 0) SHA256: 2057e38fc3644deb588c6a42b55ae1b8850a5b6ecd000df2624b3fb062bc3f83 Shader 'Fsr2RcasPassShaderRD' (group 0) SHA256: 9eb7b4d8ede37e80eb1c27c775e745e39f89f9141d5f3109f4d259edc55a5fea Shader 'Fsr2ComputeLuminancePyramidPassShaderRD' (group 0) SHA256: 406127a7ef78cdbe3479cf46cc25e34e97284e2e1917476e9610bc08dd1e066e Shader 'Fsr2AutogenReactivePassShaderRD' (group 0) SHA256: 2b73edfa8116697f946efa5c3b069304ec4b1abbeb12c776d9dea3a5deefaf01 Shader 'Fsr2TcrAutogenPassShaderRD' (group 0) SHA256: c44af3572c89110276abec6454b3d6a715436ea0b4c1aeef1834f5ff14810278 Shader 'SsEffectsDownsampleShaderRD' (group 0) SHA256: 912e287a61544a3f66a9054499caf3543d1cf3d5674de23bedb7ff64f6f9fdf8 Shader 'SsilShaderRD' (group 0) SHA256: 2f8683d40d91c2f16c7b0ca2b484a38cbd8f1fc0c4327a47b1e3a190216af070 Shader 'SsilImportanceMapShaderRD' (group 0) SHA256: 3554f3a7e39b5a429e639a6aa6b3e09215cb4e6be8ca40ced4450ac7c0899335 Shader 'SsilBlurShaderRD' (group 0) SHA256: 01370bed1db2263ddf229c794bc8213b061285baa21be0cdf871f2ef872af74c Shader 'SsilInterleaveShaderRD' (group 0) SHA256: 4434557c465ed47697abe0223ae851216963b51ba69043443b6895b14d79b8bb Shader 'SsaoShaderRD' (group 0) SHA256: 4db0d61178391a206166d78338a3baba1ff3c4c4e5ddff9cdf79eef3b6e7e1b8 Shader 'SsaoImportanceMapShaderRD' (group 0) SHA256: c03564f181f2688e730bb1bd3ee62d4ae8a379062cd04576ee55d26cdfbf3997 Shader 'SsaoBlurShaderRD' (group 0) SHA256: 35a4b4fefc8da387acbbaf6f7386439e9983673ee4a91f9a6f6247bc5405707d Shader 'SsaoInterleaveShaderRD' (group 0) SHA256: e97ad6b5da44168d2c8b40cd5a611e6e02849f0e82c42c1d6adcafa57b54c65b Shader 'ScreenSpaceReflectionScaleShaderRD' (group 0) SHA256: 6cb95948e057d81ca98f1485bcc7a0ece4029023d368682bca1777773aad9f67 Shader 'ScreenSpaceReflectionShaderRD' (group 0) SHA256: 75a98cb7c423b4821931cee9c154738d8213bc538d0459fd341f0d92c07c8aea Shader 'ScreenSpaceReflectionFilterShaderRD' (group 0) SHA256: 2a685f532b023c59b81ffd6ab9f4024ccaa2cc682ea1f2f22b1baf5b30a9dbef Shader 'SubsurfaceScatteringShaderRD' (group 0) SHA256: 7c97428de641bad5c2a3cb9a8e780df7656148f55ddf4cd10a88c27f838c1c34 Shader 'SkyShaderRD' (group 0) SHA256: ba493b7431bf534f55dd1d868a5edc4098417eec6b59af13f48c6bffa90c2b20 Shader 'VoxelGiShaderRD' (group 0) SHA256: 221e89572aca34e9ea7b5ef7f6e9a8f373b7a6974c3a7e5f8fb97b30bf5c278d Shader 'VoxelGiDebugShaderRD' (group 0) SHA256: 312dd60768314e40df1a123a3d9f7e72bb3d893d5425b2f2151fe36c10ba1065 Shader 'SdfgiPreprocessShaderRD' (group 0) SHA256: 15bae473b0ac810d1970c190f68f941453f29cd033c738a90ba40c3a26de3ff0 Shader 'SdfgiDirectLightShaderRD' (group 0) SHA256: 427f3b5f5edfe5ff453b058ffe6863062ccdfe075deccb5092d69feaa5c644e6 Shader 'SdfgiIntegrateShaderRD' (group 0) SHA256: 625c83fcaa2321819ef0d6bca658d2334914b68d454444d187acd859dcbe8480 Shader 'GiShaderRD' (group 0) SHA256: 9581cac0b1274c379e4570de913b6283caa2915c44667da282be439b4e93da21 Shader 'SdfgiDebugShaderRD' (group 0) SHA256: 6da17e1dd254ded180fb840f768402e09d44184e2b57eb3feff934fcbe207690 Shader 'SdfgiDebugProbesShaderRD' (group 0) SHA256: 9ef7bf51799e1f54dc76cc3599f6339a36f07a236c0b0afb0957341fa0149a88 Shader 'VolumetricFogShaderRD' (group 0) SHA256: ab5196cd68b47e4082c22286677462703cdc69c03320c5ad5c74fbb2588a2d07 Shader 'VolumetricFogProcessShaderRD' (group 0) SHA256: 394deaf32fef05fa9885e5d50fdfdd5c06bee20baa8a467874fc70647de5c9a7 Shader 'BokehDofShaderRD' (group 0) SHA256: 1a5035c06f91066efe2ae274ee686b41b220d901a3d9edbaccbea03622f50125 Shader 'CopyShaderRD' (group 0) SHA256: 566003fe6a892fe99f72136f718012da7137e47054ed02915d16d63df3acc85a Shader 'CopyToFbShaderRD' (group 0) SHA256: a785f280374f3415511cba1c313c7ad48042e1f81455b21a944cabc345f0477c Shader 'CubeToDpShaderRD' (group 0) SHA256: c879ac3d95686dbe6f08ca4621bb550834cf11a4ea4d4f468e17b246317b56f0 Shader 'CubemapDownsamplerShaderRD' (group 0) SHA256: d18462d3c6ae154832c4823b0b30679d4287a9ef0645eb6e57776782eabd595e Shader 'CubemapFilterShaderRD' (group 0) SHA256: 223f190df3eeca1d766d36c8ece63e356f6942e3733a22e5dc723e94b9a429d3 Shader 'CubemapRoughnessShaderRD' (group 0) SHA256: 8bc6fa8516e55f36354902efc0f7d8ef46a52ca3605932fa051e6d829961506c Shader 'SpecularMergeShaderRD' (group 0) SHA256: 172d8d8590def41ca8366fd9b9069b7b4e0a1efb895b9728940c1f4955b7b31e Shader 'ShadowFrustumShaderRD' (group 0) SHA256: d022bd9094e564c17ba5a3857e875b763b8e418ad419a5884044955124e233d8 Shader 'MotionVectorsShaderRD' (group 0) SHA256: 1f3af49e62cb816bac3f98509457c5cc3b944aa651f88ee2a0f5e766bb5401b5 Shader 'LuminanceReduceShaderRD' (group 0) SHA256: 703874ed069226c80bacb27324415253fcc09d971e82df1e37a2a467f3a7d15d Shader 'TonemapShaderRD' (group 0) SHA256: ac9eb0dcaa2743b04bbbb63d46fe08d7cc38f5c36f914d6048853ac21a4794ed Shader 'FsrUpscaleShaderRD' (group 0) SHA256: 7e11bd19e2f564611cc5c630a43fe6174ffa832736ad004a4fff136c9e06bd2f Shader 'BlitShaderRD' (group 0) SHA256: 4573e55ab387a07522f8e5f37a54798d452190602371c6f7c8517da1152c4222 JoypadLinux: udev enabled and loaded successfully. PulseAudio 17.0.0 detected. PulseAudio: context other PulseAudio: context other PulseAudio: context other PulseAudio: context ready PulseAudio: Detecting channels for device: alsa_output.pci-0000_00_0e.0.analog-stereo PulseAudio: detected 2 output channels PulseAudio: audio buffer frames: 512 calculated output latency: 11ms TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)". CORE API HASH: 2995524600 EDITOR API HASH: 3767149329 EditorSettings: Load OK! WARNING: Blend file import is enabled in the project settings, but no Blender path is configured in the editor settings. Blend files will not be imported. at: _editor_init (modules/gltf/register_types.cpp:63) Loaded system CA certificates EditorSettings: Save OK! register shortcut: 'RUN_TESTS_OVERALL' to 'Ctrl+F7' register shortcut: 'RUN_TESTCASE' to 'Ctrl+Alt+F5' register shortcut: 'RUN_TESTCASE_DEBUG' to 'Ctrl+Alt+F6' register shortcut: 'RERUN_TESTS' to 'Ctrl+F5' register shortcut: 'RERUN_TESTS_DEBUG' to 'Ctrl+F6' register shortcut: 'STOP_TEST_RUN' to 'Ctrl+F8' register shortcut: 'CREATE_TEST' to 'Ctrl+Alt+F10' Register singleton 'GdUnitCommandHandler:' ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) ERROR: invalid height:16 vs 12 at: push_error (core/variant/variant_utility.cpp:1091) ERROR: Invalid image: null at: create_from_image (scene/resources/image_texture.cpp:76) Loading GdUnit4 Plugin success GdUnit4: Test server successfully started checked port: 31002 ERROR: Parent node is busy adding/removing children, `remove_child()` can't be called at this time. Consider using `remove_child.call_deferred(child)` instead. at: remove_child (scene/main/node.cpp:1449) ERROR: Condition "data.parent" is true. at: ~Node (scene/main/node.cpp:3583) ERROR: Parent node is busy adding/removing children, `remove_child()` can't be called at this time. Consider using `remove_child.call_deferred(child)` instead. at: remove_child (scene/main/node.cpp:1449) ERROR: Condition "data.parent" is true. at: ~Node (scene/main/node.cpp:3583) Unload GdUnit4 Plugin success zsh: segmentation fault (core dumped) ./bin/Godot_v4.2.2-stable_linux.x86_64 --edit -v -d ```
Log when closing editor with the plugin disabled This one is absurdly long, here's a gist: https://gist.github.com/AnidemDex/c726bbc6233318548dfbdee95d02eb36