Bug#1077513: netgen FTBFS on i386 with gcc 14

Adrian Bunk bunk at debian.org
Mon Jul 29 15:54:44 BST 2024


Source: netgen
Version: 6.2.2401+dfsg1-2
Severity: serious
Tags: ftbfs patch

https://buildd.debian.org/status/fetch.php?pkg=netgen&arch=i386&ver=6.2.2401%2Bdfsg1-2%2Bb3&stamp=1722255872&raw=0

...
=================================== FAILURES ===================================
________________________ test_geoFiles[cube.geo-mp29-5] ________________________

filename = 'cube.geo'
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xec8c1180>, i = 5
refdata = {'boundarycondition.geo': [{'angles_tet': [27.291, 136.38], 'angles_trig': [23.577, 123.09], 'ne1d': 74, 'ne2d': 52, ....2d': 1648, ...}, {'angles_tet': [20.726, 143.6], 'angles_trig': [23.171, 123.6], 'ne1d': 160, 'ne2d': 4738, ...}], ...}

    @pytest.mark.parametrize(("filename", "mp", "i"), getParameters())
    def test_geoFiles(filename, mp, i, refdata):
        ref = refdata[filename]
        import filecmp
        print("load geo", filename)
        mp = MeshingParameters(mp, parallel_meshing=False)
        mesh = generateMesh(filename, mp)
        mesh.Save(filename+'_seq.vol.gz')
        with TaskManager():
            mesh_par = generateMesh(filename, mp)
            mesh_par.Save(filename+'_par.vol.gz')
    
        assert filecmp.cmp(filename+'_seq.vol.gz', filename+'_par.vol.gz')
>       checkData(mesh, mp, ref[i])

test_tutorials.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

mesh = <netgen.libngpy._meshing.Mesh object at 0xec8c1460>
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xec8c1180>
ref = {'angles_tet': [31.709, 132.62], 'angles_trig': [28.796, 108.23], 'ne1d': 72, 'ne2d': 92, ...}

    def checkData(mesh, mp, ref):
        data = getData(mesh, mp)
        assert ref['ne1d'] == data['ne1d']
>       assert ref['ne2d'] == data['ne2d']
E       assert 92 == 94

test_tutorials.py:41: AssertionError
----------------------------- Captured stdout call -----------------------------
load geo cube.geo
_____________________ test_geoFiles[lshape3d.geo-mp111-5] ______________________

filename = 'lshape3d.geo'
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xec8bf460>, i = 5
refdata = {'boundarycondition.geo': [{'angles_tet': [27.291, 136.38], 'angles_trig': [23.577, 123.09], 'ne1d': 74, 'ne2d': 52, ....2d': 1648, ...}, {'angles_tet': [20.726, 143.6], 'angles_trig': [23.171, 123.6], 'ne1d': 160, 'ne2d': 4738, ...}], ...}

    @pytest.mark.parametrize(("filename", "mp", "i"), getParameters())
    def test_geoFiles(filename, mp, i, refdata):
        ref = refdata[filename]
        import filecmp
        print("load geo", filename)
        mp = MeshingParameters(mp, parallel_meshing=False)
        mesh = generateMesh(filename, mp)
        mesh.Save(filename+'_seq.vol.gz')
        with TaskManager():
            mesh_par = generateMesh(filename, mp)
            mesh_par.Save(filename+'_par.vol.gz')
    
        assert filecmp.cmp(filename+'_seq.vol.gz', filename+'_par.vol.gz')
>       checkData(mesh, mp, ref[i])

test_tutorials.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

mesh = <netgen.libngpy._meshing.Mesh object at 0xec8bf0e0>
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xec8bf460>
ref = {'angles_tet': [25.594, 129.87], 'angles_trig': [24.835, 109.77], 'ne1d': 122, 'ne2d': 192, ...}

    def checkData(mesh, mp, ref):
        data = getData(mesh, mp)
        assert ref['ne1d'] == data['ne1d']
>       assert ref['ne2d'] == data['ne2d']
E       assert 192 == 184

test_tutorials.py:41: AssertionError
----------------------------- Captured stdout call -----------------------------
load geo lshape3d.geo
_______________________ test_geoFiles[ortho.geo-mp127-5] _______________________

filename = 'ortho.geo'
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xed05a9e0>, i = 5
refdata = {'boundarycondition.geo': [{'angles_tet': [27.291, 136.38], 'angles_trig': [23.577, 123.09], 'ne1d': 74, 'ne2d': 52, ....2d': 1648, ...}, {'angles_tet': [20.726, 143.6], 'angles_trig': [23.171, 123.6], 'ne1d': 160, 'ne2d': 4738, ...}], ...}

    @pytest.mark.parametrize(("filename", "mp", "i"), getParameters())
    def test_geoFiles(filename, mp, i, refdata):
        ref = refdata[filename]
        import filecmp
        print("load geo", filename)
        mp = MeshingParameters(mp, parallel_meshing=False)
        mesh = generateMesh(filename, mp)
        mesh.Save(filename+'_seq.vol.gz')
        with TaskManager():
            mesh_par = generateMesh(filename, mp)
            mesh_par.Save(filename+'_par.vol.gz')
    
        assert filecmp.cmp(filename+'_seq.vol.gz', filename+'_par.vol.gz')
>       checkData(mesh, mp, ref[i])

test_tutorials.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

mesh = <netgen.libngpy._meshing.Mesh object at 0xed05a7a0>
mp = <netgen.libngpy._meshing.MeshingParameters object at 0xed05a9e0>
ref = {'angles_tet': [27.731, 134.89], 'angles_trig': [28.064, 104.8], 'ne1d': 72, 'ne2d': 104, ...}

    def checkData(mesh, mp, ref):
        data = getData(mesh, mp)
        assert ref['ne1d'] == data['ne1d']
>       assert ref['ne2d'] == data['ne2d']
E       assert 104 == 102

test_tutorials.py:41: AssertionError
----------------------------- Captured stdout call -----------------------------
load geo ortho.geo
=============================== warnings summary ===============================
tests/pytest/test_csg.py::test_2_polyhedra
  /usr/lib/python3/dist-packages/_pytest/python.py:163: PytestReturnNotNoneWarning: Expected None, but tests/pytest/test_csg.py::test_2_polyhedra returned <netgen.libngpy._meshing.Mesh object at 0xf4307ac0>, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED test_tutorials.py::test_geoFiles[cube.geo-mp29-5] - assert 92 == 94
FAILED test_tutorials.py::test_geoFiles[lshape3d.geo-mp111-5] - assert 192 ==...
FAILED test_tutorials.py::test_geoFiles[ortho.geo-mp127-5] - assert 104 == 102
==== 3 failed, 114 passed, 106 skipped, 41 deselected, 1 warning in 56.95s =====
make[1]: *** [debian/rules:66: override_dh_auto_test] Error 1



The tests of this package do apparently dislike excess precision.

Instead of manually disabling tests just use -ffloat-store,
which costs some performance but that's anyway unlikely that
this package has many users on i386.



--- debian/rules.old	2024-07-29 14:41:15.831559222 +0000
+++ debian/rules	2024-07-29 14:41:49.475574418 +0000
@@ -58,7 +58,7 @@
 endif
 
 ifeq ($(DEB_HOST_ARCH),i386)
-    SKIP_TEST_LIST += boxcyl.geo-mp10-4 hinge.stl-mp95-1 lense square
+    CXXFLAGS += -ffloat-store
 endif
 
 override_dh_auto_test:



More information about the debian-science-maintainers mailing list