Subject: | Test failures in t/02loop-timer.t with EV 4.11 |
Hi,
Seeing some test failures in t/02loop-timer.t:
not ok 18 - One ->loop_once(1) sufficient for a single 0.01 second timer
# Failed test 'One ->loop_once(1) sufficient for a single 0.01 second
timer'
# at /home/tom/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/IO/Async/LoopTests.pm line 505.
# got: '2'
# expected: '1'
not ok 19 - One ->loop_once(1) sufficient for a single 0.1 second timer
# Failed test 'One ->loop_once(1) sufficient for a single 0.1 second
timer'
# at /home/tom/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/IO/Async/LoopTests.pm line 505.
# got: '2'
# expected: '1'
The 0.001s test passes successfully, presumably some other event is
triggering before the timeout although I haven't been able to find out
what it is yet.
Under strace, those failures no longer appear:
epoll_wait(4, {}, 64, 1) = 0
write(9, "ok 17 - One ->loop_once(1) suffi"..., 70ok 17 - One -
Show quoted text
>loop_once(1) sufficient for a single 0.001 second timer
) = 70
epoll_wait(4, {}, 64, 9) = 0
write(9, "ok 18 - One ->loop_once(1) suffi"..., 69ok 18 - One -
Show quoted text>loop_once(1) sufficient for a single 0.01 second timer
) = 69
epoll_wait(4, {}, 64, 99) = 0
write(9, "ok 19 - One ->loop_once(1) suffi"..., 68ok 19 - One -
Show quoted text>loop_once(1) sufficient for a single 0.1 second timer
) = 68
although there's now another failure slightly earlier in the test:
epoll_ctl(4, EPOLL_CTL_ADD, 5, {EPOLLIN, {u32=5, u64=4294967301}}) = 0
epoll_wait(4, {}, 64, 511) = 0
write(9, "not ok 6 - loop_once(5) while wa"..., 85not ok 6 -
loop_once(5) while waiting for watch_time after took at least 1.5
seconds
) = 85
write(10, "# Failed test 'loop_once(5) wh"..., 92# Failed test
'loop_once(5) while waiting for watch_time after took at least 1.5
seconds'
) = 92
write(10, "# at /home/tom/perl5/perlbrew/"..., 103# at
/home/tom/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/IO/Async/LoopTests.pm line 140.
) = 103
write(10, "# '0.512017011642456'\n# "..., 51#
'0.512017011642456'
# >=
# '1.5'
) = 51
Another minor issue is that the tests show a warning:
Too late to run CHECK block at .../lib/site_perl/5.16.1/x86_64-
linux/EV.pm line 123.
which can be fixed by adding 'use EV;' before ::Loop::EV is loaded.
Local EV version is 4.11.
cheers,
Tom