Skip to content

Build failures on several big endian architecture platforms

Hello after uploading a pytango version with the unit tests activated, we got a bunch of failure

the pytango tracker https://tracker.debian.org/pkg/pytango the build logs: https://buildd.debian.org/status/package.php?p=pytango

It seems that the unit test failed on the s390x ppc64 ans sparc64 arch.

you can find the information about these platforms here

https://wiki.debian.org/ArchitectureSpecificsMemo#Summary

LE vs BE ?

most of the error are like

=================================== FAILURES ===================================
________________________ test_async_command_polled[int] ________________________
typed_values = (<class 'int'>, (1, 2, -65535, 23), <function typed_values.<locals>.<lambda> at 0x3ff91883550>)

    def test_async_command_polled(typed_values):
        dtype, values, expected = typed_values
    
        if dtype == (bool,):
            pytest.xfail('Not supported for some reasons')
    
        class TestDevice(Device):
    
            @command(dtype_in=dtype, dtype_out=dtype)
            def identity(self, arg):
                return arg
    
        with DeviceTestContext(TestDevice) as proxy:
            for value in values:
>               eid = proxy.command_inout_asynch('identity', value)

tests/test_async.py:28: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tango/connection.py:205: in __Connection__command_inout_asynch
    argin = __get_command_inout_param(self, cmd_name, args[0])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Device(test/nodb/testdevice), cmd_name = 'identity', cmd_param = 1

    def __get_command_inout_param(self, cmd_name, cmd_param=None):
        if cmd_param is None:
            return DeviceData()
    
        if isinstance(cmd_param, DeviceData):
            return cmd_param
    
        if isinstance(self, DeviceProxy):
            # This is not part of 'Connection' interface, but
            # DeviceProxy only.
            info = self.command_query(cmd_name)
            param = DeviceData()
>           param.insert(info.in_type, cmd_param)
E           TypeError: Trying to insert a value in a DEV_VOID DeviceData!

tango/connection.py:57: TypeError
----------------------------- Captured stdout call -----------------------------
Ready to accept request
----------------------------- Captured stderr call -----------------------------
Can't create notifd event supplier. Notifd event not available
Edited by Anton Joubert