Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FAIL: tests/test_radio_dish #4621

Open
ellert opened this issue Nov 4, 2023 · 3 comments
Open

FAIL: tests/test_radio_dish #4621

ellert opened this issue Nov 4, 2023 · 3 comments

Comments

@ellert
Copy link

ellert commented Nov 4, 2023

Issue description

When running "make check" the tests/test_radio_dish test fails:

tests/test_radio_dish.cpp:498:test_radio_dish_no_loop_ipv4:FAIL: Expected -1 Was 7

This test is skipped on Windows:

static void test_radio_dish_no_loop (int ipv6_)
{
#ifdef _WIN32
TEST_IGNORE_MESSAGE (
"ZMQ_MULTICAST_LOOP=false does not appear to work on Windows (TODO)");
#endif

But it doesn't seem to work on Linux either, According to the error message 7 bytes are received, which is the length of the message sent, but with ZMQ_MULTICAST_LOOP=false no message should be received. So it looks like it fails the same way on Linux as on Windows.

Environment

  • libzmq version (commit hash if unreleased): 4.3.5
  • OS: Fedora Linux 38

Minimal test code / Steps to reproduce the issue

  1. ./configure --enable-drafts
  2. make
  3. make check

What's the actual result? (include assertion message & call stack if applicable)

FAIL: tests/test_radio_dish

WARNING: Forced closure of 2 sockets, this is an implementation error unless the test case failed
tests/test_radio_dish.cpp:510:test_leave_unjoined_fails:PASS
tests/test_radio_dish.cpp:511:test_join_too_long_fails:PASS
tests/test_radio_dish.cpp:512:test_long_group:PASS
tests/test_radio_dish.cpp:513:test_join_twice_fails:PASS
tests/test_radio_dish.cpp:514:test_radio_bind_fails_ipv4:PASS
tests/test_radio_dish.cpp:515:test_radio_bind_fails_ipv6:PASS
tests/test_radio_dish.cpp:516:test_dish_connect_fails_ipv4:PASS
tests/test_radio_dish.cpp:517:test_dish_connect_fails_ipv6:PASS
tests/test_radio_dish.cpp:518:test_radio_dish_tcp_poll_ipv4:PASS
tests/test_radio_dish.cpp:519:test_radio_dish_tcp_poll_ipv6:PASS
tests/test_radio_dish.cpp:520:test_radio_dish_udp_ipv4:PASS
tests/test_radio_dish.cpp:521:test_radio_dish_udp_ipv6:PASS
tests/test_radio_dish.cpp:523:test_radio_dish_mcast_ipv4:PASS
tests/test_radio_dish.cpp:498:test_radio_dish_no_loop_ipv4:FAIL: Expected -1 Was 7
tests/test_radio_dish.cpp:431:test_radio_dish_mcast_ipv6:IGNORE: No multicast available
tests/test_radio_dish.cpp:431:test_radio_dish_no_loop_ipv6:IGNORE: No multicast available


16 Tests 1 Failures 2 Ignored
FAIL
FAIL tests/test_radio_dish (exit status: 1)

What's the expected result?

Test not failing or test skipped.

@spchamp
Copy link

spchamp commented Apr 6, 2024

Could it be if ZMQ_MULTICAST_LOOP may not have actually been False at the time?

When building test_radio_dish on openSUSE, probably due to limitations of the networking stack in the virtual machine where the build is being produced, it's failing earlier in this test file when testing if multicast is available. Here, it fails with time out before beginning test_radio_dish_mcast_ipv4() seemingly unable to determine if multicast support is or is not available in the virtual machine. It's probably a separate issue albeit. This machine's networking configuration is a little awkward, not a bug in zmq of course though I wish the test would not time out here.

I see that the test that fails above is not reached here.

@spchamp
Copy link

spchamp commented Apr 6, 2024

For what it's worth, I was able to build and test the draft socket support on a remote host with openSUSE 15.5, under a user-contributed set of RPM packages for the openSUSE Leap 15 series of releases, mainly 15.5. There's a separate set of package built specifically with the draft support, independent to the conventional packages under the openSUSE release model

The radio dish test passes there:

[  139s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/zeromq-4.3.5/build_draft'
[...]
[  178s] PASS: tests/test_radio_dish
[...]
[  205s] ============================================================================
[  205s] Testsuite summary for zeromq 4.3.5
[  205s] ============================================================================
[  205s] # TOTAL: 133
[  205s] # PASS:  114
[  205s] # SKIP:  19
[  205s] # XFAIL: 0
[  205s] # FAIL:  0
[  205s] # XPASS: 0
[  205s] # ERROR: 0
[  205s] ============================================================================
[  205s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/zeromq-4.3.5/build_draft'

Albeit I'm still working out the details of the packaging. The tests have passed, however.

Regardless of the quirks of the networking configuration on my openSUSE virtual machine, it looks like the tests have built successfully on a Linux lol.

I'm not certain if the toolchain could make any difference in the runtime for the tests? The contrib packages are built with g++ from GCC 12 and libunwind

@pufferbatterie
Copy link

pufferbatterie commented Apr 30, 2024

fails too on v4.3.5 branch via included Dockerfile based on debian buster (ifcontainer has a ipv6 address)
tests/test_radio_dish.cpp:499:test_radio_dish_no_loop_ipv6:FAIL: Expected -1 Was 7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants