You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am the maintainer of the FreeBSD port for spyder-kernels[1]. Up to version 2.5.2, the test suite also worked as expected under FreeBSD. A total of 92 tests passed, 6 were skipped and there were 6 warnings. This was mainly due to the fact that Django was not installed.
With version 3.0.0 it is similar, but there is now a new error for the section 'test_interrupt' of spyder_kernels/console/tests/test_console_kernel.py:
# make test
[..snip..]
___________________________ test_interrupt _______________________
def test_interrupt():
"""
Test that the kernel can be interrupted by calling a comm handler.
"""
# Command to start the kernel
cmd = "from spyder_kernels.console import start; start.main()"
with setup_kernel(cmd) as client:
kernel_comm = CommBase()
# Create new comm and send the highest protocol
comm = Comm(kernel_comm._comm_name, client)
comm.open(data={})
comm._send_channel = client.control_channel
kernel_comm._register_comm(comm)
client.execute_interactive("import time", timeout=TIMEOUT)
# Try interrupting loop
t0 = time.time()
msg_id = client.execute("for i in range(100): time.sleep(.1)")
time.sleep(.2)
# Raise interrupt on control_channel
kernel_comm.remote_call().raise_interrupt_signal()
# Wait for shell message
while True:
assert time.time() - t0 < 5
msg = client.get_shell_msg(timeout=TIMEOUT)
if msg["parent_header"].get("msg_id") != msg_id:
# not from my request
continue
break
assert time.time() - t0 < 5
if os.name == 'nt':
# Windows doesn't do "interrupting sleep"
return
# Try interrupting sleep
t0 = time.time()
msg_id = client.execute("time.sleep(10)")
time.sleep(.2)
# Raise interrupt on control_channel
kernel_comm.remote_call().raise_interrupt_signal()
# Wait for shell message
while True:
assert time.time() - t0 < 5
msg = client.get_shell_msg(timeout=TIMEOUT)
if msg["parent_header"].get("msg_id") != msg_id:
# not from my request
continue
break
> assert time.time() - t0 < 5
E assert (1725085139.3097377 - 1725085129.246985) < 5
E + where 1725085139.3097377 = <built-in function time>()
E + where <built-in function time> = time.time
spyder_kernels/console/tests/test_console_kernel.py:1323: AssertionError
This error occurs within test_interrrupt in the second section (#Try interrupt sleep). The time difference <5 is exceeded, in my case the difference is 10.06275. If I set the threshold in the code to a higher value, e.g. <15, the test runs through without errors.
Since I do not have a deeper understanding of this test section myself and cannot judge whether the time difference is actually a problem, I have a few questions that I hope can be answered here:
Is exceeding the time difference (<5) really critical?
Would it be sufficient for FreeBSD if I raised this threshold, e.g. to a value <15?
Is it possible that the test needs to be adapted to FreeBSD in another way and are there any ideas or hints for this?
I would be very happy if I could get some guidance and help here. And I am of course happy to answer any questions. Thanks in advance.
The text was updated successfully, but these errors were encountered:
Hey @rhurlin, thanks for reporting. I'm not sure what's really happening in FreeBSD, but I think it's fine if you increase the time diff to 15. It seems there it takes a lot of time to send a SIGINT signal to the kernel to interrupt what's doing.
Sorry, I didn't read the test code carefully, but you can see that before the failure it's running time.sleep(10) in the kernel before trying to interrupt that computation.
That's why the time diff needs to be less than 5 secs (or in any case less than 10) to be passed correctly. So that means that sending SIGINT to the kernel is actually not working in FreeBSD.
I am the maintainer of the FreeBSD port for spyder-kernels[1]. Up to version 2.5.2, the test suite also worked as expected under FreeBSD. A total of 92 tests passed, 6 were skipped and there were 6 warnings. This was mainly due to the fact that Django was not installed.
[1] https://www.freshports.org/devel/py-spyder-kernels
With version 3.0.0 it is similar, but there is now a new error for the section 'test_interrupt' of
spyder_kernels/console/tests/test_console_kernel.py
:This error occurs within test_interrrupt in the second section (#Try interrupt sleep). The time difference <5 is exceeded, in my case the difference is 10.06275. If I set the threshold in the code to a higher value, e.g. <15, the test runs through without errors.
Since I do not have a deeper understanding of this test section myself and cannot judge whether the time difference is actually a problem, I have a few questions that I hope can be answered here:
I would be very happy if I could get some guidance and help here. And I am of course happy to answer any questions. Thanks in advance.
The text was updated successfully, but these errors were encountered: