Bug #1977: test failed in test_isdigit in test/dl/test_func.rb on
sparc-solaris-2.10 (64bit)
http://redmine.ruby-lang.org/issues/show/1977
e$B5/I<<Te(B: Naohisa G.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
ruby -v: ruby 1.9.2dev (2009-08-19) [sparc-solaris2.10]
sparc-solaris-2.10 e$B$K$Fe(B64e$B%S%C%H%3%s%Q%$%k$7$?>l9g!"e(BBug #1967
([ruby-dev:39146])e$B$N%Q%C%A$rE,MQ$7$?8e$G$O!"0J2<$Ne(B2e$B$D$Ne(Bdle$B4XO"e(B
e$B$N%F%9%H$,<:GTe(B(Failure)e$B$7$^$9!#e(B
-
Failure:
test_isdigit(DL::TestFunc) [/XXX/test/dl/test_func.rb:21]:
Failed assertion, no message given. -
Failure:
test_isdigit(DL::TestImport) [/XXX/test/dl/test_import.rb:126]:
Failed assertion, no message given.
Solarise$BIUB0$N%7%9%F%`%3!<%kDI@W%3%^%s%Ie(Btrusse$B$r;H$C$F!"e(B
$ truss -t ‘!all’ -u ‘libc:isdigit’ /XXX/trunk-24578/bin/testrb test/dl
-v
e$B$N$h$&$J46$8$G!"e(Bisdigite$B4X?t$N8F$S=P$7$rDI@W$7$?$H$3$m!"e(B
(e$BA0N,e(B)
DL::TestFunc#test_isdigit: /1@1: → libc:isdigit(0x3100000000,
0xc, 0xffffffffffffffff, 0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
/1@1: → libc:isdigit(0x3200000000, 0xc, 0xffffffffffffffff,
0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
/1@1: → libc:isdigit(0x7200000000, 0xc, 0xffffffffffffffff,
0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
0.01 s: F
(e$BCfN,e(B)
DL::TestImport#test_isdigit: /1@1: → libc:isdigit(0x3100000000,
0xc, 0xffffffffffffffff, 0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
/1@1: → libc:isdigit(0x3200000000, 0xc, 0xffffffffffffffff,
0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
/1@1: → libc:isdigit(0x7200000000, 0xc, 0xffffffffffffffff,
0xfffffffffffffff8)
/1@1: ← libc:isdigit() = 0
0.00 s: F
(e$B8eN,e(B)
1e$BHVL$N0z?t$O!“K\Mhe(B 0x31, 0x32, 0x72
e$B$H$$$C$??t$G$”$k$Y$-$H$3$m$,!"e(B
0x3100000000, 0x3200000000, 0x7200000000 e$B$K$J$C$F$7$^$C$F$$$^$9!#e(B
e$B$I$&$d$i!"e(Bsparc e$B4D6-$G$O!"0z?t$Ne(Bint e$B$Oe(B long
e$B$KId9f3HD%$5$l$k$h$&$G$9!#e(B
(e$B;29MJ88%e(B:
http://sdc.sun.co.jp/solaris/tools/private/amd64_migration.html )
e$BI8=`4X?te(B int putchar(char) e$B$K$F3NG’$7$?$H$3$m!"e(Bchar
e$B$bF1MM$Ke(B long
e$B$K3HD%$5$l$k$N$G!"e(Bshort e$B$b$*$=$i$/F1MM$@$H;W$$$^$9!#e(B
float e$B$,e(B double e$B$K3HD%$5$l$k$+$I$&$+$O3NG’$G$-$F$$$^$;$s!#e(B
e$B$^$?!"e(Bsparce$B>e$Ne(BLinuxe$B$J$I!"e(BSolarise$B0J30$G$O$I$&$J$N$+$OL$3NG’$G$9!#e(B
sparce$B$N>l9g$@$1FCJL$Je(B PACK_MAP e$B$He(B SIZE_MAP
e$B$r;}$D$h$&$K$7$?%Q%C%A$re(B
e$B0J2<$KE:IU$7$^$9!#$3$N%Q%C%A$rEv$F$k$He(B dl
e$B$N%F%9%[email protected]$7$^$9!#e(B
e$B!JCme(B:e$B:9J,$r>.$5$/$9$k$?$a%$%s%G%s%H$,>/!9$*$+$7$/$J$C$F$$$^$9!#e(B)
Index: ext/dl/lib/dl/stack.rb
— ext/dl/lib/dl/stack.rb (revision 24578)
+++ ext/dl/lib/dl/stack.rb (working copy)
@@ -61,6 +61,36 @@
TYPE_DOUBLE => ALIGN_DOUBLE,
}
-
case RUBY_PLATFORM
-
when /sparc/i
-
PACK_MAP = {
-
TYPE_VOIDP => ((SIZEOF_VOIDP == SIZEOF_LONG_LONG)? "q" : "l!"),
-
TYPE_CHAR => "l!",
-
TYPE_SHORT => "l!",
-
TYPE_INT => "l!",
-
TYPE_LONG => "l!",
-
TYPE_FLOAT => "f",
-
TYPE_DOUBLE => "d",
-
}
-
SIZE_MAP = {
-
TYPE_VOIDP => SIZEOF_VOIDP,
-
TYPE_CHAR => SIZEOF_LONG,
-
TYPE_SHORT => SIZEOF_LONG,
-
TYPE_INT => SIZEOF_LONG,
-
TYPE_LONG => SIZEOF_LONG,
-
TYPE_FLOAT => SIZEOF_FLOAT,
-
TYPE_DOUBLE => SIZEOF_DOUBLE,
-
}
-
if defined?(TYPE_LONG_LONG)
-
ALIGN_MAP[TYPE_LONG_LONG] = ALIGN_LONG_LONG
-
PACK_MAP[TYPE_LONG_LONG] = "q"
-
SIZE_MAP[TYPE_LONG_LONG] = SIZEOF_LONG_LONG
-
end
-
else
-
PACK_MAP = {
TYPE_VOIDP => ((SIZEOF_VOIDP == SIZEOF_LONG_LONG)? “q” : “l!”),
TYPE_CHAR => “c”,
@@ -86,6 +116,8 @@
SIZE_MAP[TYPE_LONG_LONG] = SIZEOF_LONG_LONG
end -
end
-
def parse_types(types)
@types = types
@template = “”