-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Make failing test not hang #4622
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
Conversation
113dd59
to
dcc0fbc
Compare
dcc0fbc
to
fcdd413
Compare
|
verify that multicast is working on the system before running tests that relies on this, or skipping those test otherwise. In some circumstances this check itself hangs due to the recvfrom() call being blocking waiting for data. The test is eventually killed with a SIGALARM signal. ./config/test-driver: line 112: 1227308 Alarm clock "$@" >> "$log_file" 2>&1 FAIL: tests/test_radio_dish FAIL: tests/test_radio_dish =========================== FAIL tests/test_radio_dish (exit status: 142) $ tests/test_radio_dish tests/test_radio_dish.cpp:511:test_leave_unjoined_fails:PASS tests/test_radio_dish.cpp:512:test_join_too_long_fails:PASS tests/test_radio_dish.cpp:513:test_long_group:PASS tests/test_radio_dish.cpp:514:test_join_twice_fails:PASS tests/test_radio_dish.cpp:515:test_radio_bind_fails_ipv4:PASS tests/test_radio_dish.cpp:516:test_radio_bind_fails_ipv6:PASS tests/test_radio_dish.cpp:517:test_dish_connect_fails_ipv4:PASS tests/test_radio_dish.cpp:518:test_dish_connect_fails_ipv6:PASS tests/test_radio_dish.cpp:519:test_radio_dish_tcp_poll_ipv4:PASS tests/test_radio_dish.cpp:520:test_radio_dish_tcp_poll_ipv6:PASS tests/test_radio_dish.cpp:521:test_radio_dish_udp_ipv4:PASS tests/test_radio_dish.cpp:522:test_radio_dish_udp_ipv6:PASS Alarm clock With this commit, making the recvfrom() call non-blocking. The test does noy hang, and the non-available multicast is detected and the tests needing it are skipped: PASS: tests/test_radio_dish $ tests/test_radio_dish 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:431:test_radio_dish_mcast_ipv4:IGNORE: No multicast available tests/test_radio_dish.cpp:431:test_radio_dish_no_loop_ipv4:IGNORE: No multicast available 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 0 Failures 4 Ignored OK
fcdd413
to
0761bb1
Compare
Better? |
Please push the release tags from the upstream repo to your github fork (git push --follow-tags), that way the OBS SCM/CI workflows can also run and test the changes in more environments |
The tests/test_radio_dish test implements is_multicast_available() to verify that multicast is working on the system before running tests that relies on this, or skipping those test otherwise.
In some circumstances this check itself hangs due to the recvfrom() call being blocking waiting for data. The test is eventually killed with a SIGALARM signal.
./config/test-driver: line 112: 1227308 Alarm clock "$@" >> "$log_file" 2>&1
FAIL: tests/test_radio_dish
FAIL tests/test_radio_dish (exit status: 142)
$ tests/test_radio_dish
tests/test_radio_dish.cpp:511:test_leave_unjoined_fails:PASS
tests/test_radio_dish.cpp:512:test_join_too_long_fails:PASS
tests/test_radio_dish.cpp:513:test_long_group:PASS
tests/test_radio_dish.cpp:514:test_join_twice_fails:PASS
tests/test_radio_dish.cpp:515:test_radio_bind_fails_ipv4:PASS
tests/test_radio_dish.cpp:516:test_radio_bind_fails_ipv6:PASS
tests/test_radio_dish.cpp:517:test_dish_connect_fails_ipv4:PASS
tests/test_radio_dish.cpp:518:test_dish_connect_fails_ipv6:PASS
tests/test_radio_dish.cpp:519:test_radio_dish_tcp_poll_ipv4:PASS
tests/test_radio_dish.cpp:520:test_radio_dish_tcp_poll_ipv6:PASS
tests/test_radio_dish.cpp:521:test_radio_dish_udp_ipv4:PASS
tests/test_radio_dish.cpp:522:test_radio_dish_udp_ipv6:PASS
Alarm clock
With this commit, making the recvfrom() call non-blocking. The test does noy hang, and the non-available multicast is detected and the tests needing it are skipped:
PASS: tests/test_radio_dish
$ tests/test_radio_dish
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:431:test_radio_dish_mcast_ipv4:IGNORE: No multicast available
tests/test_radio_dish.cpp:431:test_radio_dish_no_loop_ipv4:IGNORE: No multicast available
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 0 Failures 4 Ignored
OK