From bb77c2f25ffcf668653f132bf7639e75c70a9dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 10 Apr 2023 17:36:58 +0200 Subject: [PATCH] python: skip tests that use PrimitiveImporter scenes on static builds. Hitting an assert due to non-owning array deleters. No idea how to fix this easily without linking all plugins as static as well. --- src/python/magnum/test/test_scenetools.py | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/python/magnum/test/test_scenetools.py b/src/python/magnum/test/test_scenetools.py index e5704dd..6bfe3d4 100644 --- a/src/python/magnum/test/test_scenetools.py +++ b/src/python/magnum/test/test_scenetools.py @@ -28,9 +28,15 @@ import unittest from corrade import containers from magnum import * from magnum import scenetools, trade +import magnum class FlattenTransformationHierarchy(unittest.TestCase): def test_2d(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + # The only way to get a 2D scene is via PrimitiveImporter importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView()) @@ -43,6 +49,11 @@ class FlattenTransformationHierarchy(unittest.TestCase): self.assertEqual(transformations[0], Matrix3.translation((-4.5, -3.0))) def test_2d_field_id(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + # The only way to get a 2D scene is via PrimitiveImporter importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView()) @@ -57,6 +68,11 @@ class FlattenTransformationHierarchy(unittest.TestCase): self.assertEqual(transformations[0], Matrix3.translation((-4.5, -3.0))) def test_3d(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView()) @@ -68,6 +84,11 @@ class FlattenTransformationHierarchy(unittest.TestCase): self.assertEqual(transformations[0], Matrix4.translation((-4.5, -3.0, 0.0))) def test_3d_field_id(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView()) @@ -81,6 +102,11 @@ class FlattenTransformationHierarchy(unittest.TestCase): self.assertEqual(transformations[0], Matrix4.translation((-4.5, -3.0, 0.0))) def test_field_not_found(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView()) @@ -96,6 +122,11 @@ class FlattenTransformationHierarchy(unittest.TestCase): scenetools.flatten_transformation_hierarchy3d(scene, scene.field_count) def test_not_2d_not_3d(self): + # Static builds with non-static plugins cause assertions with non-owned + # array deleters used by PrimitiveImporter, skip in that case + if magnum.BUILD_STATIC: + self.skipTest("dynamic PrimitiveImporter doesn't work with a static build") + importer = trade.ImporterManager().load_and_instantiate('PrimitiveImporter') importer.open_data(containers.ArrayView())