Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Data-MessagePack CPAN distribution.

Report information
The Basics
Id: 71407
Status: resolved
Priority: 0/
Queue: Data-MessagePack

People
Owner: Nobody in particular
Requestors: MAXS [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 0.36
Fixed in: (no value)



Subject: Some tests fail under linux/ARM
Data::MessagePack does not pass some tests on Linux 2.6.18-6 armv5tejl 32 bits with perl 5.10.1 (and ivsize=4) and 5.14.2 (and ivsize=8): ************ perl 5.10.1 ************ t/00_compile.t .............. 1/1 # Testing Data::MessagePack/0.36 (XS) # byteoder: 1234, ivsize=4 t/00_compile.t .............. ok t/01_pack.t ................. 19/43 # Failed test 'dump cb 3f f0 00 00 00 00 00 00' # at t/01_pack.t line 13. # got: 'cb 00 00 00 00 3f f0 00 00' # expected: 'cb 3f f0 00 00 00 00 00 00' # Looks like you failed 1 test of 43. t/01_pack.t ................. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/43 subtests t/02_unpack.t ............... ok t/03_stream_unpack.t ........ ok t/04_invert.t ............... ok t/05_preferred_int.t ........ ok t/06_stream_unpack2.t ....... ok t/07_break.t ................ ok t/08_cycle.t ................ ok t/09_stddata.t .............. 47/? # Failed test 'data[28]' # at t/09_stddata.t line 36. # got: '1.06099789548264e-314' # expected: '-0' # Failed test 'data[29]' # at t/09_stddata.t line 36. # got: '5.29980882362664e-315' # expected: '1' # Failed test 'data[30]' # at t/09_stddata.t line 36. # got: '1.5909787778453e-314' # expected: '-1' t/09_stddata.t .............. 136/? # Failed test 'data[28]' # at t/09_stddata.t line 36. # got: '1.06099789548264e-314' # expected: '-0' # Failed test 'data[29]' # at t/09_stddata.t line 36. # got: '5.29980882362664e-315' # expected: '1' # Failed test 'data[30]' # at t/09_stddata.t line 36. # got: '1.5909787778453e-314' # expected: '-1' t/09_stddata.t .............. 180/? # Looks like you failed 6 tests of 204. t/09_stddata.t .............. Dubious, test returned 6 (wstat 1536, 0x600) Failed 6/204 subtests t/10_splitted_bytes.t ....... ok t/11_stream_unpack3.t ....... ok t/12_stream_unpack4.t ....... ok t/13_booleans.t ............. ok t/14_invalid_data.t ......... ok t/15_utf8.t ................. ok t/16_unpacker_for_larges.t .. ok t/17_canonical.t ............ ok t/18_new_interface.t ........ ok t/19_utf8_property.t ........ ok t/40_threads.t .............. skipped: no threads t/50_leaktrace.t ............ skipped: Test requires module 'Test::LeakTrace' but it's not found Test Summary Report ------------------- t/01_pack.t (Wstat: 256 Tests: 43 Failed: 1) Failed test: 19 Non-zero exit status: 1 t/09_stddata.t (Wstat: 1536 Tests: 204 Failed: 6) Failed tests: 58, 60, 62, 160, 162, 164 Non-zero exit status: 6 Files=22, Tests=598, 53 wallclock secs ( 5.58 usr 5.23 sys + 24.04 cusr 18.70 csys = 53.55 CPU) Result: FAIL Failed 2/22 test programs. 7/598 subtests failed. Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform: osname=linux, osvers=2.6.18-6-versatile, archname=armv5tejl-linux uname='linux iena 2.6.18-6-versatile #1 thu feb 14 01:25:13 cet 2008 armv5tejl gnulinux ' config_args='-Dprivlib=/lib/perl -Darchlib=/lib/perl -Dsitearch=/lib/perl -Dsitelib=/lib/perl -Dinc_version_list=none -Duserelocatableinc -Dprefix=/root/perl -Accflags=-DNO_MATHOMS -Accflags=-DMOBIFILTER -des' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DNO_MATHOMS -DMOBIFILTER -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-DNO_MATHOMS -DMOBIFILTER -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.1.2 20061115 (prerelease) (Debian 4.1.1-21)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.6.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.6' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: NO_MATHOMS PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO ==================================================================== ************ perl 5.14.2 ************ t/00_compile.t .............. 1/1 # Testing Data::MessagePack/0.36 (XS) # byteoder: 12345678, ivsize=8 t/00_compile.t .............. ok t/01_pack.t ................. 1/43 # Failed test 'dump cb 3f f0 00 00 00 00 00 00' # at t/01_pack.t line 13. # got: 'cb 00 00 00 00 3f f0 00 00' # expected: 'cb 3f f0 00 00 00 00 00 00' t/01_pack.t ................. 43/43 # Looks like you failed 1 test of 43. t/01_pack.t ................. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/43 subtests t/02_unpack.t ............... ok t/03_stream_unpack.t ........ ok t/04_invert.t ............... ok t/05_preferred_int.t ........ ok t/06_stream_unpack2.t ....... ok t/07_break.t ................ ok t/08_cycle.t ................ ok t/09_stddata.t .............. 58/? # Failed test 'data[28]' # at t/09_stddata.t line 36. # got: '1.06099789548264e-314' # expected: '0' # Failed test 'data[29]' # at t/09_stddata.t line 36. # got: '5.29980882362664e-315' # expected: '1' # Failed test 'data[30]' # at t/09_stddata.t line 36. # got: '1.5909787778453e-314' # expected: '-1' t/09_stddata.t .............. 143/? # Failed test 'data[28]' # at t/09_stddata.t line 36. # got: '1.06099789548264e-314' # expected: '0' # Failed test 'data[29]' # at t/09_stddata.t line 36. # got: '5.29980882362664e-315' # expected: '1' # Failed test 'data[30]' # at t/09_stddata.t line 36. # got: '1.5909787778453e-314' # expected: '-1' t/09_stddata.t .............. 186/? # Looks like you failed 6 tests of 204. t/09_stddata.t .............. Dubious, test returned 6 (wstat 1536, 0x600) Failed 6/204 subtests t/10_splitted_bytes.t ....... ok t/11_stream_unpack3.t ....... ok t/12_stream_unpack4.t ....... ok t/13_booleans.t ............. ok t/14_invalid_data.t ......... ok t/15_utf8.t ................. ok t/16_unpacker_for_larges.t .. ok t/17_canonical.t ............ ok t/18_new_interface.t ........ ok t/19_utf8_property.t ........ ok t/40_threads.t .............. skipped: no threads t/50_leaktrace.t ............ skipped: Test requires module 'Test::LeakTrace' but it's not found Summary of my perl5 (revision 5 version 14 subversion 2) configuration: Platform: osname=linux, osvers=2.6.18-6-versatile, archname=armv5tejl-linux-64int uname='linux iena 2.6.18-6-versatile #1 thu feb 14 01:25:13 cet 2008 armv5tejl gnulinux ' config_args='-Dprivlib=/lib/perl -Darchlib=/lib/perl -Dsitearch=/lib/perl -Dsitelib=/lib/perl -Dinc_version_list=none -Duserelocatableinc -Dprefix=/lib/perl-5.14.2-64/root -Accflags=-DNO_MATHOMS -Accflags=-DPERL_DISABLE_PMC -Accflags=-DMOBIFILTER -Duse64bitint -des' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DNO_MATHOMS -DPERL_DISABLE_PMC -DMOBIFILTER -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-DNO_MATHOMS -DPERL_DISABLE_PMC -DMOBIFILTER -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.1.2 20061115 (prerelease) (Debian 4.1.1-21)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.6.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.6' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: NO_MATHOMS PERL_DISABLE_PMC PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
Hi. I cannot the cause of the problem. Can you try tests with PERL_ONLY=1 (i.e. type `PERL_ONLY=1 make test`)?
Le Lun 03 Oct 2011 16:01:07, GFUJI a écrit : Show quoted text
> Hi. > > I cannot the cause of the problem. > Can you try tests with PERL_ONLY=1 (i.e. type `PERL_ONLY=1 make test`)?
Hello, With PERL_ONLY=1, exactly the same tests fail. With the same values... Just tried with a perl-5.14.2 with ivsize=4. Don't forget the stuff runs on ARM, I think the problem comes from here... # uname -a Linux zzz 2.6.18-6-versatile #1 Thu Feb 14 01:25:13 CET 2008 armv5tejl GNU/Linux Best regards, Max.
Thanks, but OMG, I don't understand what happens. I guess this is the bug in CPU, but we can avoid it if I knew the preprocessor symbol for the CPU. Hmm...
Hi This problem is caused by OABI which is ARM Old ABI. Data format of double precision floating number in OABI is different from usual little endian format and usual big endian format. So some tests are failed. Its format is called middle-endian or mixed-endian. I fixed this problem Pure perl code and module's author gfx fixed XS code. Please update latest version 0.38 and test it. We only test little endian ARM. If your machine is big endian ARM, some problems may occor. If you fail tests again, then please report us. Thanks. -- Syohei YOSHIDA On 2011-10月-06 木 02:57:07, MAXS wrote: Show quoted text
> Le Lun 03 Oct 2011 16:01:07, GFUJI a écrit :
> > Hi. > > > > I cannot the cause of the problem. > > Can you try tests with PERL_ONLY=1 (i.e. type `PERL_ONLY=1 make test`)?
> > Hello, > > With PERL_ONLY=1, exactly the same tests fail. With the same values... > > Just tried with a perl-5.14.2 with ivsize=4. > > Don't forget the stuff runs on ARM, I think the problem comes from here... > > # uname -a > Linux zzz 2.6.18-6-versatile #1 Thu Feb 14 01:25:13 CET 2008 armv5tejl > GNU/Linux > > Best regards, > > Max.
Hi, I just tested on the same platform (linux/armv5tejl) with perl 5.10.1 (ivsize=4), 5.14.2 (ivsize=4) and 5.14.2 (ivsize=8) and all works like a charm. With and without PERL_ONLY=1. Thank you very much! Best regards, Max. Le Mar 11 Oct 2011 04:15:14, syohex a écrit : Show quoted text
> Hi > > This problem is caused by OABI which is ARM Old ABI. > Data format of double precision floating number in OABI > is different from usual little endian format and usual > big endian format. So some tests are failed. > Its format is called middle-endian or mixed-endian. > > I fixed this problem Pure perl code and module's author > gfx fixed XS code. > > Please update latest version 0.38 and test it. > We only test little endian ARM. If your machine > is big endian ARM, some problems may occor. > If you fail tests again, then please report us. > > Thanks. > > -- > Syohei YOSHIDA > > > On 2011-10月-06 木 02:57:07, MAXS wrote:
> > Le Lun 03 Oct 2011 16:01:07, GFUJI a écrit :
> > > Hi. > > > > > > I cannot the cause of the problem. > > > Can you try tests with PERL_ONLY=1 (i.e. type `PERL_ONLY=1 make
test`)? Show quoted text
> > > > Hello, > > > > With PERL_ONLY=1, exactly the same tests fail. With the same values... > > > > Just tried with a perl-5.14.2 with ivsize=4. > > > > Don't forget the stuff runs on ARM, I think the problem comes from
here... Show quoted text
> > > > # uname -a > > Linux zzz 2.6.18-6-versatile #1 Thu Feb 14 01:25:13 CET 2008 armv5tejl > > GNU/Linux > > > > Best regards, > > > > Max.
> >
Great! Thank you! -- Goro Fuji (gfx) GFUJI at CPAN.org