Skip to content

tests: update obs test for adrv9371 and adrv9009 #69

tests: update obs test for adrv9371 and adrv9009

tests: update obs test for adrv9371 and adrv9009 #69

GitHub Actions / Test Results failed Apr 2, 2024 in 0s

227 fail, 957 skipped, 279 pass in 18m 20s

1 463 tests   279 ✅  18m 20s ⏱️
    1 suites  957 💤
    1 files    227 ❌

Results for commit a600406.

Annotations

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_attr[tx_hardwaregain_chan0--41.95-0.0-0.05-0.05-adi.ad9371] (test.test_ad9371) failed

results.xml [took 6s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_attribute_single_value = <function attribute_single_value at 0x7f98de6d9160>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
attr = 'tx_hardwaregain_chan0', start = -41.95, stop = 0.0, step = 0.05
tol = 0.05

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize(
        "attr, start, stop, step, tol",
        [
            ("tx_hardwaregain_chan0", -41.95, 0.0, 0.05, 0.05),
            ("tx_hardwaregain_chan1", -41.95, 0.0, 0.05, 0.05),
            ("tx_lo", 70000000, 6000000000, 1000, 0),
            ("rx_lo", 70000000, 6000000000, 1000, 0),
        ],
    )
    def test_ad9371_attr(
        test_attribute_single_value, iio_uri, classname, attr, start, stop, step, tol
    ):
>       test_attribute_single_value(iio_uri, classname, attr, start, stop, step, tol)

test/test_ad9371.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/attr_tests.py:69: in attribute_single_value
    assert dev_interface(uri, classname, val, attr, tol)
test/common.py:110: in dev_interface
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5fba100>
event = <threading.Event object at 0x7f98d5fe0a00>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_attr[tx_hardwaregain_chan1--41.95-0.0-0.05-0.05-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_attribute_single_value = <function attribute_single_value at 0x7f98de6d9160>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
attr = 'tx_hardwaregain_chan1', start = -41.95, stop = 0.0, step = 0.05
tol = 0.05

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize(
        "attr, start, stop, step, tol",
        [
            ("tx_hardwaregain_chan0", -41.95, 0.0, 0.05, 0.05),
            ("tx_hardwaregain_chan1", -41.95, 0.0, 0.05, 0.05),
            ("tx_lo", 70000000, 6000000000, 1000, 0),
            ("rx_lo", 70000000, 6000000000, 1000, 0),
        ],
    )
    def test_ad9371_attr(
        test_attribute_single_value, iio_uri, classname, attr, start, stop, step, tol
    ):
>       test_attribute_single_value(iio_uri, classname, attr, start, stop, step, tol)

test/test_ad9371.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/attr_tests.py:69: in attribute_single_value
    assert dev_interface(uri, classname, val, attr, tol)
test/common.py:110: in dev_interface
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5f99310>
event = <threading.Event object at 0x7f98d5f99820>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_attr[tx_lo-70000000-6000000000-1000-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_attribute_single_value = <function attribute_single_value at 0x7f98de6d9160>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371', attr = 'tx_lo'
start = 70000000, stop = 6000000000, step = 1000, tol = 0

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize(
        "attr, start, stop, step, tol",
        [
            ("tx_hardwaregain_chan0", -41.95, 0.0, 0.05, 0.05),
            ("tx_hardwaregain_chan1", -41.95, 0.0, 0.05, 0.05),
            ("tx_lo", 70000000, 6000000000, 1000, 0),
            ("rx_lo", 70000000, 6000000000, 1000, 0),
        ],
    )
    def test_ad9371_attr(
        test_attribute_single_value, iio_uri, classname, attr, start, stop, step, tol
    ):
>       test_attribute_single_value(iio_uri, classname, attr, start, stop, step, tol)

test/test_ad9371.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/attr_tests.py:69: in attribute_single_value
    assert dev_interface(uri, classname, val, attr, tol)
test/common.py:110: in dev_interface
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5fa3340>
event = <threading.Event object at 0x7f98d5f9dc70>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_attr[rx_lo-70000000-6000000000-1000-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_attribute_single_value = <function attribute_single_value at 0x7f98de6d9160>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371', attr = 'rx_lo'
start = 70000000, stop = 6000000000, step = 1000, tol = 0

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize(
        "attr, start, stop, step, tol",
        [
            ("tx_hardwaregain_chan0", -41.95, 0.0, 0.05, 0.05),
            ("tx_hardwaregain_chan1", -41.95, 0.0, 0.05, 0.05),
            ("tx_lo", 70000000, 6000000000, 1000, 0),
            ("rx_lo", 70000000, 6000000000, 1000, 0),
        ],
    )
    def test_ad9371_attr(
        test_attribute_single_value, iio_uri, classname, attr, start, stop, step, tol
    ):
>       test_attribute_single_value(iio_uri, classname, attr, start, stop, step, tol)

test/test_ad9371.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/attr_tests.py:69: in attribute_single_value
    assert dev_interface(uri, classname, val, attr, tol)
test/common.py:110: in dev_interface
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d600bfa0>
event = <threading.Event object at 0x7f98d600beb0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_rx_data[0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dma_rx = <function dma_rx at 0x7f98de6d98b0>, iio_uri = 'ip:10.1.0.25'
classname = 'adi.ad9371', channel = 0

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", range(2))
    def test_ad9371_rx_data(test_dma_rx, iio_uri, classname, channel):
>       test_dma_rx(iio_uri, classname, channel)

test/test_ad9371.py:476: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:49: in dma_rx
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5f69520>
event = <threading.Event object at 0x7f98d5f692b0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_rx_data[1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dma_rx = <function dma_rx at 0x7f98de6d98b0>, iio_uri = 'ip:10.1.0.25'
classname = 'adi.ad9371', channel = 1

    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", range(2))
    def test_ad9371_rx_data(test_dma_rx, iio_uri, classname, channel):
>       test_dma_rx(iio_uri, classname, channel)

test/test_ad9371.py:476: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:49: in dma_rx
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5f13b20>
event = <threading.Event object at 0x7f98d60ca820>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set0-2000000-0.5--13-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 0, frequency = 2000000, scale = 0.5, peak_min = -13

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5d27340>
event = <threading.Event object at 0x7f98d5d27910>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set0-2000000-0.5--13-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 1, frequency = 2000000, scale = 0.5, peak_min = -13

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5b38040>
event = <threading.Event object at 0x7f98d5b38d30>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set1-2000000-0.12--25-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 0, frequency = 2000000, scale = 0.12, peak_min = -25

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5e65c10>
event = <threading.Event object at 0x7f98d5e632e0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set1-2000000-0.12--25-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 1, frequency = 2000000, scale = 0.12, peak_min = -25

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5e68ca0>
event = <threading.Event object at 0x7f98d5e681c0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set2-2000000-0.25--19-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 0, frequency = 2000000, scale = 0.25, peak_min = -19

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5fa9400>
event = <threading.Event object at 0x7f98d5fa9850>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set2-2000000-0.25--19-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 1, frequency = 2000000, scale = 0.25, peak_min = -19

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5c0d640>
event = <threading.Event object at 0x7f98d5c0d100>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set3-1000000-0.12--14.7-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 0, frequency = 1000000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5d76670>
event = <threading.Event object at 0x7f98d5d76400>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set3-1000000-0.12--14.7-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 1, frequency = 1000000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5d319d0>
event = <threading.Event object at 0x7f98d5d31040>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set4-2000000-0.12--14.7-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 0, frequency = 2000000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5f79dc0>
event = <threading.Event object at 0x7f98d5f791c0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set4-2000000-0.12--14.7-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 0s]
Raw output
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner
self = <paramiko.Transport at 0xd5922fa0 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
>               buf = self.packetizer.readline(timeout)

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2327: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:381: in readline
    buf += self._read_timeout(timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.packet.Packetizer object at 0x7f98d5922130>, timeout = 2

    def _read_timeout(self, timeout):
        start = time.time()
        while True:
            try:
                x = self.__socket.recv(128)
                if len(x) == 0:
>                   raise EOFError()
E                   EOFError

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:618: EOFError

During handling of the above exception, another exception occurred:

test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 1, frequency = 2000000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:451: in connect
    t.start_client(timeout=timeout)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:738: in start_client
    raise e
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2143: in run
    self._check_banner()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.Transport at 0xd5922fa0 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
                buf = self.packetizer.readline(timeout)
            except ProxyCommandFailure:
                raise
            except Exception as e:
>               raise SSHException(
                    "Error reading SSH protocol banner" + str(e)
                )
E               paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2331: SSHException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set5-500000-0.12--14.7-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 0, frequency = 500000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5c4f160>
event = <threading.Event object at 0x7f98d5c4f430>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set5-500000-0.12--14.7-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 1, frequency = 500000, scale = 0.12, peak_min = -14.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d59a3850>
event = <threading.Event object at 0x7f98d5fa5f10>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set6-2000000-0.25--23.8-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 0, frequency = 2000000, scale = 0.25, peak_min = -23.8

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5f831f0>
event = <threading.Event object at 0x7f98d5f835e0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set6-2000000-0.25--23.8-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 1s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 1, frequency = 2000000, scale = 0.25, peak_min = -23.8

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d58fac70>
event = <threading.Event object at 0x7f98d58faf10>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set7-2000000-0.25--28.75-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 0, frequency = 2000000, scale = 0.25, peak_min = -28.75

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5c90100>
event = <threading.Event object at 0x7f98d5901820>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set7-2000000-0.25--28.75-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 0s]
Raw output
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner
self = <paramiko.Transport at 0xd603c2e0 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
>               buf = self.packetizer.readline(timeout)

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2327: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:381: in readline
    buf += self._read_timeout(timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.packet.Packetizer object at 0x7f98d603cd90>, timeout = 2

    def _read_timeout(self, timeout):
        start = time.time()
        while True:
            try:
                x = self.__socket.recv(128)
                if len(x) == 0:
>                   raise EOFError()
E                   EOFError

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:618: EOFError

During handling of the above exception, another exception occurred:

test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'manual', 'rx_hardwaregain_chan0': 10, 'rx_hardwaregain_chan1': 10, ...}
channel = 1, frequency = 2000000, scale = 0.25, peak_min = -28.75

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:451: in connect
    t.start_client(timeout=timeout)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:738: in start_client
    raise e
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2143: in run
    self._check_banner()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.Transport at 0xd603c2e0 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
                buf = self.packetizer.readline(timeout)
            except ProxyCommandFailure:
                raise
            except Exception as e:
>               raise SSHException(
                    "Error reading SSH protocol banner" + str(e)
                )
E               paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2331: SSHException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set8-1000000-0.12--9-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 0, frequency = 1000000, scale = 0.12, peak_min = -9

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5d48eb0>
event = <threading.Event object at 0x7f98d5ec9fd0>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set8-1000000-0.12--9-1-adi.ad9371] (test.test_ad9371) failed

results.xml [took 3s]
Raw output
paramiko.ssh_exception.AuthenticationException: Authentication failed.
test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 1, frequency = 1000000, scale = 0.12, peak_min = -9

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:485: in connect
    self._auth(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:818: in _auth
    raise saved_exception
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:805: in _auth
    self._transport.auth_password(username, password)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:1603: in auth_password
    return self.auth_handler.wait_for_response(my_event)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.auth_handler.AuthHandler object at 0x7f98d5b86ca0>
event = <threading.Event object at 0x7f98d5b86d60>

    def wait_for_response(self, event):
        max_ts = None
        if self.transport.auth_timeout is not None:
            max_ts = time.time() + self.transport.auth_timeout
        while True:
            event.wait(0.1)
            if not self.transport.is_active():
                e = self.transport.get_exception()
                if (e is None) or issubclass(e.__class__, EOFError):
                    e = AuthenticationException(
                        "Authentication failed: transport shut down or saw EOF"
                    )
                raise e
            if event.is_set():
                break
            if max_ts is not None and max_ts <= time.time():
                raise AuthenticationException("Authentication timeout.")
    
        if not self.is_authenticated():
            e = self.transport.get_exception()
            if e is None:
                e = AuthenticationException("Authentication failed.")
            # this is horrible.  Python Exception isn't yet descended from
            # object, so type(e) won't work. :(
            # TODO 4.0: lol. just lmao.
            if issubclass(e.__class__, PartialAuthentication):
                return e.allowed_types
>           raise e
E           paramiko.ssh_exception.AuthenticationException: Authentication failed.

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/auth_handler.py:263: AuthenticationException

Check warning on line 0 in test.test_ad9371

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_ad9371_dds_loopback[param_set9-1000000-0.12--24.7-0-adi.ad9371] (test.test_ad9371) failed

results.xml [took 0s]
Raw output
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner
self = <paramiko.Transport at 0xd5d42340 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
>               buf = self.packetizer.readline(timeout)

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2327: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:381: in readline
    buf += self._read_timeout(timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.packet.Packetizer object at 0x7f98d5d42c40>, timeout = 2

    def _read_timeout(self, timeout):
        start = time.time()
        while True:
            try:
                x = self.__socket.recv(128)
                if len(x) == 0:
>                   raise EOFError()
E                   EOFError

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/packet.py:618: EOFError

During handling of the above exception, another exception occurred:

test_dds_loopback = <function dds_loopback at 0x7f98d7791280>
iio_uri = 'ip:10.1.0.25', classname = 'adi.ad9371'
param_set = {'ensm_mode': 'radio_on', 'gain_control_mode': 'automatic', 'rx_lo': 2500000000, 'rx_quadrature_tracking_en_chan0': 1, ...}
channel = 0, frequency = 1000000, scale = 0.12, peak_min = -24.7

    @pytest.mark.no_obs_required
    @pytest.mark.iio_hardware(hardware)
    @pytest.mark.parametrize("classname", [(classname)])
    @pytest.mark.parametrize("channel", [0, 1])
    @pytest.mark.parametrize(
        "param_set, frequency, scale, peak_min",
        [
            (params["one_cw_tone_manual"], 2000000, 0.5, -13),
            (params["one_cw_tone_manual"], 2000000, 0.12, -25),
            (params["one_cw_tone_manual"], 2000000, 0.25, -19),
            (params["one_cw_tone_auto"], 1000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 2000000, 0.12, -14.7),
            (params["one_cw_tone_auto"], 500000, 0.12, -14.7),
            (params["change_attenuation_5dB_manual"], 2000000, 0.25, -23.8),
            (params["change_attenuation_10dB_manual"], 2000000, 0.25, -28.75),
            (params["change_attenuation_0dB_auto"], 1000000, 0.12, -9),
            (params["change_attenuation_20dB_auto"], 1000000, 0.12, -24.7),
            (params["change_rf_gain_0dB_manual"], 2000000, 0.25, -29),
            (params["change_rf_gain_20dB_manual"], 2000000, 0.25, -9),
            (params["change_temp_gain_up"], 2000000, 0.25, -16),
            (params["change_temp_gain_down"], 2000000, 0.25, -22),
        ],
    )
    def test_ad9371_dds_loopback(
        test_dds_loopback,
        iio_uri,
        classname,
        param_set,
        channel,
        frequency,
        scale,
        peak_min,
    ):
>       test_dds_loopback(
            iio_uri, classname, param_set, channel, frequency, scale, peak_min
        )

test/test_ad9371.py:513: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/dma_tests.py:286: in dds_loopback
    sdr = eval(classname + "(uri='" + uri + "')")
<string>:1: in <module>
    ???
adi/ad937x.py:40: in __init__
    self._jesd = jesd(uri, username=username, password=password)
adi/jesd_internal.py:20: in __init__
    self.fs = sshfs(address, username, password)
adi/sshfs.py:28: in __init__
    self.ssh.connect(
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/client.py:451: in connect
    t.start_client(timeout=timeout)
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:738: in start_client
    raise e
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2143: in run
    self._check_banner()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <paramiko.Transport at 0xd5d42340 (unconnected)>

    def _check_banner(self):
        # this is slow, but we only have to do it once
        for i in range(100):
            # give them 15 seconds for the first line, then just 2 seconds
            # each additional line.  (some sites have very high latency.)
            if i == 0:
                timeout = self.banner_timeout
            else:
                timeout = 2
            try:
                buf = self.packetizer.readline(timeout)
            except ProxyCommandFailure:
                raise
            except Exception as e:
>               raise SSHException(
                    "Error reading SSH protocol banner" + str(e)
                )
E               paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/paramiko/transport.py:2331: SSHException