After reading http://perldoc.perl.org/perlipc.html, I setted environment 
variable PERL_SIGNALS to unsafe and this part of your test suite passes, c.f. 
attachements.

jdurand@jddwwwopenindiana:~/.local/share/.cpan/build/App-MtAws-1.113-apqFj2$ 
perl -Ilib t/integration/sysread_syswrite_full.t >& 
/tmp/without_PERL_SIGNALS.txt
jdurand@jddwwwopenindiana:~/.local/share/.cpan/build/App-MtAws-1.113-apqFj2$ 
PERL_SIGNALS=unsafe perl -Ilib t/integration/sysread_syswrite_full.t >& 
/tmp/with_PERL_SIGNALS.txt

I let you take the appropriate conclusion.

I note that this section already has a SKIP section depending on perl version -;

Regards, Jean-Damien.

----- Mail original -----
De: "Victor Efimov" <vic...@vsespb.ru>
À: "David Golden" <x...@xdg.me>
Cc: jeandamiendur...@free.fr, "CPAN-Testers-Discuss" 
<cpan-testers-discuss@perl.org>
Envoyé: Samedi 15 Février 2014 10:16:47
Objet: Re: failure report print returned EINTR error

there is error:

"Error Interrupted system call in print"

caused by this line:

print ($f $_[1]) or confess "Error $! in print";

i.e. it's not related to sysread/syswrite

(below errors related to syswrite, but let's ignore them)

2014-02-15 13:10 GMT+04:00 David Golden <x...@xdg.me>:
> Read the documentation for sysread/syswrite.  They bypass buffered IO.
>
> On Sat, Feb 15, 2014 at 4:02 AM, Victor Efimov <vic...@vsespb.ru> wrote:
>> there is report
>> http://www.cpantesters.org/cpan/report/b22f82c2-943c-11e3-b4bc-9b1944f7ffa7
>>
>> failure in this report cause by print() call returning EINTR.
>> but it's not possible. perl protects buffered IO from Interrupts.
>>
>> please advice.
>
>
>
> --
> David Golden <x...@xdg.me>
> Take back your inbox! → http://www.bunchmail.com/
> Twitter/IRC: @xdg
1..60
ok 1
ok 2 - sysread initialize buffer to empty string
ok 3
ok 4 - sysreadfull initialize buffer to empty string
ok 5
ok 6 - read initialize buffer to empty string
ok 7 - should merge two reads
ok 8 - should merge two reads
ok 9 - should return first data chunk
ok 10 - should return first data chunk correct
ok 11 - should return EOF
# SIG 21392
ok 12 - should handle EINTR in sysread
ok 13 - should handle EINTR in sysread
ok 14 - should handle EINTR in syswrite
ok 15
ok 16 - should handle EINTR in syswrite
ok 17
ok 18 - should handle EINTR in syswrite
ok 19
ok 20 - should handle EINTR in syswrite
ok 21
ok 22 - should handle EINTR in syswrite
ok 23
ok 24 - should handle EINTR in syswrite
ok 25
ok 26 - should handle EINTR in syswrite
ok 27
ok 28 - should handle EINTR in syswrite
ok 29
ok 30 - should handle EINTR in syswrite
ok 31
ok 32 - should handle EINTR in syswrite
ok 33
ok 34 - should merge two reads
ok 35 - should merge two reads
ok 36 - should return first data chunk
ok 37 - should return first data chunk correct
ok 38 - should return EOF
# SIG 21392
ok 39 - should handle EINTR in sysread
ok 40 - should handle EINTR in sysread
# SIG 21400
Error Interrupted system call in print at t/integration/sysread_syswrite_full.t 
line 67.
        main::__ANON__(IO::Pipe::End=GLOB(0x8704ddc), 
"abxhrtf6abxhrtf6abxhrtf6abxhrtf6abxhrtf6abxhrtf6abxhrtf6abxhr"...) called at 
t/integration/sysread_syswrite_full.t line 156
        main::__ANON__(IO::Pipe::End=GLOB(0x8704df0), 
IO::Pipe::End=GLOB(0x8704ddc), 21392) called at 
/home/jdurand/.local/share/.cpan/build/App-MtAws-1.113-apqFj2/t/integration/../lib/TestUtils.pm
 line 248
        TestUtils::with_fork(CODE(0x87048f0), CODE(0x8704c10)) called at 
t/integration/sysread_syswrite_full.t line 160
not ok 41 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '20480'
#     expected: '65480'
not ok 42
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 43 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 44
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 45 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 46
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 47 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 48
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 49 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 50
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 51 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 52
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 53 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 54
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 55 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 56
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 57 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 58
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
not ok 59 - should handle EINTR in syswrite
#   Failed test 'should handle EINTR in syswrite'
#   at t/integration/sysread_syswrite_full.t line 148.
#          got: '0'
#     expected: '65480'
not ok 60
#   Failed test at t/integration/sysread_syswrite_full.t line 149.
# Looks like you failed 20 tests of 60.
1..60
ok 1
ok 2 - sysread initialize buffer to empty string
ok 3
ok 4 - sysreadfull initialize buffer to empty string
ok 5
ok 6 - read initialize buffer to empty string
ok 7 - should merge two reads
ok 8 - should merge two reads
ok 9 - should return first data chunk
ok 10 - should return first data chunk correct
ok 11 - should return EOF
# SIG 21403
ok 12 - should handle EINTR in sysread
ok 13 - should handle EINTR in sysread
# SIG 21407
ok 14 - should handle EINTR in syswrite
ok 15
ok 16 - should handle EINTR in syswrite
ok 17
ok 18 - should handle EINTR in syswrite
ok 19
ok 20 - should handle EINTR in syswrite
ok 21
ok 22 - should handle EINTR in syswrite
ok 23
ok 24 - should handle EINTR in syswrite
ok 25
ok 26 - should handle EINTR in syswrite
ok 27
ok 28 - should handle EINTR in syswrite
ok 29
ok 30 - should handle EINTR in syswrite
ok 31
ok 32 - should handle EINTR in syswrite
ok 33
ok 34 - should merge two reads
ok 35 - should merge two reads
ok 36 - should return first data chunk
ok 37 - should return first data chunk correct
ok 38 - should return EOF
# SIG 21403
ok 39 - should handle EINTR in sysread
ok 40 - should handle EINTR in sysread
# SIG 21411
ok 41 - should handle EINTR in syswrite
ok 42
ok 43 - should handle EINTR in syswrite
ok 44
ok 45 - should handle EINTR in syswrite
ok 46
ok 47 - should handle EINTR in syswrite
ok 48
ok 49 - should handle EINTR in syswrite
ok 50
ok 51 - should handle EINTR in syswrite
ok 52
ok 53 - should handle EINTR in syswrite
ok 54
ok 55 - should handle EINTR in syswrite
ok 56
ok 57 - should handle EINTR in syswrite
ok 58
ok 59 - should handle EINTR in syswrite
ok 60

Reply via email to