Skip to content

f2py.test_return_character fails on s390x #11831

@QuLogic

Description

@QuLogic

Reproducing code example:

Both TestF77ReturnCharacter.test_all and TestF90ReturnCharacter.test_all fail when building on Fedora s390x: build

Error message:

_______________________ TestF77ReturnCharacter.test_all ________________________
self = <numpy.f2py.tests.test_return_character.TestF77ReturnCharacter object at 0x3ff91bd0cc0>
    @pytest.mark.slow
    def test_all(self):
        for name in "t0,t1,t5,s0,s1,s5,ss".split(","):
>           self.check_function(getattr(self.module, name))
name       = 't0'
self       = <numpy.f2py.tests.test_return_character.TestF77ReturnCharacter object at 0x3ff91bd0cc0>
../../../BUILDROOT/numpy-1.15.1-2.fc30.s390x/usr/lib64/python3.7/site-packages/numpy/f2py/tests/test_return_character.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <numpy.f2py.tests.test_return_character.TestF77ReturnCharacter object at 0x3ff91bd0cc0>
t = <fortran t0>
    def check_function(self, t):
        tname = t.__doc__.split()[0]
        if tname in ['t0', 't1', 's0', 's1']:
            assert_(t(23) == b'2')
            r = t('ab')
            assert_(r == b'a', repr(r))
            r = t(array('ab'))
>           assert_(r == b'a', repr(r))
E           AssertionError: b' '
r          = b' '
self       = <numpy.f2py.tests.test_return_character.TestF77ReturnCharacter object at 0x3ff91bd0cc0>
t          = <fortran t0>
tname      = 't0'
../../../BUILDROOT/numpy-1.15.1-2.fc30.s390x/usr/lib64/python3.7/site-packages/numpy/f2py/tests/test_return_character.py:19: AssertionError
_______________________ TestF90ReturnCharacter.test_all ________________________
self = <numpy.f2py.tests.test_return_character.TestF90ReturnCharacter object at 0x3ff91bd6518>
    @pytest.mark.slow
    def test_all(self):
        for name in "t0,t1,t5,ts,s0,s1,s5,ss".split(","):
>           self.check_function(getattr(self.module.f90_return_char, name))
name       = 't0'
self       = <numpy.f2py.tests.test_return_character.TestF90ReturnCharacter object at 0x3ff91bd6518>
../../../BUILDROOT/numpy-1.15.1-2.fc30.s390x/usr/lib64/python3.7/site-packages/numpy/f2py/tests/test_return_character.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <numpy.f2py.tests.test_return_character.TestF90ReturnCharacter object at 0x3ff91bd6518>
t = <fortran object>
    def check_function(self, t):
        tname = t.__doc__.split()[0]
        if tname in ['t0', 't1', 's0', 's1']:
            assert_(t(23) == b'2')
            r = t('ab')
            assert_(r == b'a', repr(r))
            r = t(array('ab'))
>           assert_(r == b'a', repr(r))
E           AssertionError: b' '
r          = b' '
self       = <numpy.f2py.tests.test_return_character.TestF90ReturnCharacter object at 0x3ff91bd6518>
t          = <fortran object>
tname      = 't0'
../../../BUILDROOT/numpy-1.15.1-2.fc30.s390x/usr/lib64/python3.7/site-packages/numpy/f2py/tests/test_return_character.py:19: AssertionError

Numpy/Python version information:

NumPy 1.15.1, Python 3.7

All variations:

Locally, I modified the tests to be parametrized and ran those:

    @pytest.mark.parametrize('name', "t0,t1,t5,s0,s1,s5,ss".split(","))
    def test_all(self, name):
        self.check_function(getattr(self.module, name))

This enabled seeing all results:

TestF77ReturnCharacter::test_all[t0] <- FAILED
TestF77ReturnCharacter::test_all[t1] <- FAILED
TestF77ReturnCharacter::test_all[t5] <- PASSED
TestF77ReturnCharacter::test_all[s0] <- FAILED
TestF77ReturnCharacter::test_all[s1] <- FAILED
TestF77ReturnCharacter::test_all[s5] <- PASSED
TestF77ReturnCharacter::test_all[ss] <- PASSED
TestF90ReturnCharacter::test_all[t0] <- FAILED
TestF90ReturnCharacter::test_all[t1] <- FAILED
TestF90ReturnCharacter::test_all[t5] <- PASSED
TestF90ReturnCharacter::test_all[ts] <- PASSED
TestF90ReturnCharacter::test_all[s0] <- FAILED
TestF90ReturnCharacter::test_all[s1] <- FAILED
TestF90ReturnCharacter::test_all[s5] <- PASSED
TestF90ReturnCharacter::test_all[ss] <- PASSED

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions