pytest-regressions icon indicating copy to clipboard operation
pytest-regressions copied to clipboard

Test failure in test_different_data_types on s390x

Open jcfp opened this issue 2 years ago • 0 comments

hi,

as part of a recent update of the Debian package of pytest-regressions, the testsuite is now being run as part of the Debian CI. Unfortunately, there's a test failure on s390x only. Tests were fine on all other hardware architectures for which the CI is enabled (amd64, arm64, armel, armhf, i386, ppc64el).

IIRC s390x is the only big-endian architecture of the bunch, and that <i8 is the equivalent of (little-endian) int64. I suspect something is trying to be very explicit about the endianness on that platform, which then causes the output to not match the notation expected by the test.

Log excerpt:

107s ============================= test session starts ==============================
107s platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0
107s rootdir: /tmp/autopkgtest-lxc.fvwen33l/downtmp/autopkgtest_tmp/build
107s plugins: datadir-1.4.1+ds, regressions-2.5.0+ds
107s collected 72 items
107s 
107s tests/test_data_regression.py ........                                   [ 11%]
107s tests/test_dataframe_regression.py ..............                        [ 30%]
107s tests/test_file_regression.py ....                                       [ 36%]
107s tests/test_filenames.py ...                                              [ 40%]
107s tests/test_grids.py ..                                                   [ 43%]
108s tests/test_image_regression.py ..                                        [ 45%]
108s tests/test_ndarrays_regression.py ....F.................                 [ 76%]
108s tests/test_num_regression.py .................                           [100%]
108s 
108s =================================== FAILURES ===================================
108s __________________________ test_different_data_types ___________________________
108s 
108s ndarrays_regression = <pytest_regressions.ndarrays_regression.NDArraysRegressionFixture object at 0x3ff29a06b90>
108s no_regen = None
108s 
108s     def test_different_data_types(ndarrays_regression, no_regen):
108s         # Generate data with integer array.
108s         data = {"data1": np.array([1] * 10)}
108s         ndarrays_regression.check(data)
108s     
108s         # Run check with incompatible type.
108s         data = {"data1": np.array([True] * 10)}
108s         with pytest.raises(AssertionError) as excinfo:
108s             ndarrays_regression.check(data)
108s         obtained_error_msg = str(excinfo.value)
108s         expected = "\n".join(
108s             [
108s                 "Data types are not the same.",
108s                 "  key: data1",
108s                 "  Obtained: bool",
108s                 "  Expected: int64",
108s             ]
108s         )
108s >       assert expected in obtained_error_msg
108s E       AssertionError: assert 'Data types are not the same.\n  key: data1\n  Obtained: bool\n  Expected: int64' in 'Data types are not the same.\n  key: data1\n  Obtained: bool\n  Expected: <i8\n'
108s 
108s tests/test_ndarrays_regression.py:297: AssertionError
108s =========================== short test summary info ============================
108s FAILED tests/test_ndarrays_regression.py::test_different_data_types - Asserti...
108s ========================= 1 failed, 71 passed in 2.33s =========================

Full logs available via the following links for both Debian Ubuntu.

jcfp avatar Dec 29 '23 17:12 jcfp