-
Notifications
You must be signed in to change notification settings - Fork 138
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[t]: #40219: [TODO] - Steal Perl5's sprintf tests
~ stole sprintf tests from perl-5.9.4 (CPAN) ~ 308 total, 199 skipped, 71 failing ~ TODO: figure out why so many tests need to be skipped ~ TODO: fix failing tests :) git-svn-id: https://svn.parrot.org/parrot/trunk@14682 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
- Loading branch information
Showing
3 changed files
with
318 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,311 @@ | ||
# template data expected description (optional) | ||
%6. 6s '' %6. 6s INVALID (See use of $w in code above) | ||
%6 .6s '' %6 .6s INVALID | ||
%6.6 s '' %6.6 s INVALID | ||
%A '' %A INVALID | ||
%B '' %B INVALID | ||
%C '' %C INVALID | ||
%D 0x7fffffff 2147483647 Synonym for %ld | ||
%E 123456.789 1.234568E+05 Like %e, but using upper-case "E" | ||
%F 123456.789 123456.789000 Synonym for %f | ||
%G 1234567.89 1.23457E+06 Like %g, but using upper-case "E" | ||
%G 1234567e96 1.23457E+102 | ||
%G .1234567e-101 1.23457E-102 | ||
%G 12345.6789 12345.7 | ||
%G 1234567e96 1.23457E+102 exponent too big skip: os390 | ||
%G .1234567e-101 1.23457E-102 exponent too small skip: os390 | ||
%H '' %H INVALID | ||
%I '' %I INVALID | ||
%J '' %J INVALID | ||
%K '' %K INVALID | ||
%L '' %L INVALID | ||
%M '' %M INVALID | ||
%N '' %N INVALID | ||
%O 2**32-1 37777777777 Synonym for %lo | ||
%P '' %P INVALID | ||
%Q '' %Q INVALID | ||
%R '' %R INVALID | ||
%S '' %S INVALID | ||
%T '' %T INVALID | ||
%U 2**32-1 4294967295 Synonym for %lu | ||
%V '' %V INVALID | ||
%W '' %W INVALID | ||
%X 2**32-1 FFFFFFFF Like %x, but with u/c letters | ||
%#X 2**32-1 0XFFFFFFFF | ||
%Y '' %Y INVALID | ||
%Z '' %Z INVALID | ||
%a '' %a INVALID | ||
%b 2**32-1 11111111111111111111111111111111 | ||
%+b 2**32-1 11111111111111111111111111111111 | ||
%#b 2**32-1 0b11111111111111111111111111111111 | ||
%34b 2**32-1 11111111111111111111111111111111 | ||
%034b 2**32-1 0011111111111111111111111111111111 | ||
%-34b 2**32-1 11111111111111111111111111111111 | ||
%-034b 2**32-1 11111111111111111111111111111111 | ||
%c 65 A | ||
%10c 65 A | ||
%#10c 65 A # modifier: no effect | ||
%010c 65 000000000A | ||
%10lc 65 A l modifier: no effect | ||
%10hc 65 A h modifier: no effect | ||
%10.5c 65 A precision: no effect | ||
%-10c 65 A | ||
%d 123456.789 123456 | ||
%d -123456.789 -123456 | ||
%d 0 0 | ||
%+d 0 +0 | ||
%0d 0 0 | ||
%.0d 0 | ||
%+.0d 0 + | ||
%.0d 1 1 | ||
%d 1 1 | ||
%+d 1 +1 | ||
%#3.2d 1 01 # modifier: no effect | ||
%3.2d 1 01 | ||
%03.2d 1 001 | ||
%-3.2d 1 01 | ||
%-03.2d 1 01 zero pad + left just.: no effect | ||
%d -1 -1 | ||
%+d -1 -1 | ||
%hd 1 1 More extensive testing of | ||
%ld 1 1 length modifiers would be | ||
%Vd 1 1 platform-specific | ||
%vd chr(1) 1 | ||
%+vd chr(1) +1 | ||
%#vd chr(1) 1 | ||
%vd "\01\02\03" 1.2.3 | ||
%vd v1.2.3 1.2.3 | ||
%vd [version::qv("1.2.3")] 1.2.3 | ||
%vd [version->new("1.2")] 1.200 | ||
%vd [version->new("1.02")] 1.20 | ||
%vd [version->new("1.002")] 1.2 | ||
%vd [version->new("1048576.5")] 1048576.500 | ||
%vd [version->new("50")] 50.0 | ||
%v.3d "\01\02\03" 001.002.003 | ||
%0v3d "\01\02\03" 001.002.003 | ||
%v.3d [version::qv("1.2.3")] 001.002.003 | ||
%-v3d "\01\02\03" 1 .2 .3 | ||
%+-v3d "\01\02\03" +1 .2 .3 | ||
%+-v3d [version::qv("1.2.3")] +1 .2 .3 | ||
%v4.3d "\01\02\03" 001. 002. 003 | ||
%0v4.3d "\01\02\03" 0001.0002.0003 | ||
%0*v2d ['-', "\0\7\14"] 00-07-12 | ||
%v.*d ["\01\02\03", 3] 001.002.003 | ||
%0v*d ["\01\02\03", 3] 001.002.003 | ||
%-v*d ["\01\02\03", 3] 1 .2 .3 | ||
%+-v*d ["\01\02\03", 3] +1 .2 .3 | ||
%v*.*d ["\01\02\03", 4, 3] 001. 002. 003 | ||
%0v*.*d ["\01\02\03", 4, 3] 0001.0002.0003 | ||
%0*v*d ['-', "\0\7\13", 2] 00-07-11 | ||
%0*v*d ['-', version::qv("0.7.11"), 2] 00-07-11 | ||
%e 1234.875 1.234875e+03 | ||
%e 0.000012345 1.234500e-05 | ||
%e 1234567E96 1.234567e+102 | ||
%e 0 0.000000e+00 | ||
%e .1234567E-101 1.234567e-102 | ||
%+e 1234.875 +1.234875e+03 | ||
%#e 1234.875 1.234875e+03 | ||
%e -1234.875 -1.234875e+03 | ||
%+e -1234.875 -1.234875e+03 | ||
%#e -1234.875 -1.234875e+03 | ||
%.0e 1234.875 1e+03 | ||
%#.0e 1234.875 1.e+03 | ||
%.0e 1.875 2e+00 | ||
%.0e 0.875 9e-01 | ||
%.*e [0, 1234.875] 1e+03 | ||
%.1e 1234.875 1.2e+03 | ||
%-12.4e 1234.875 1.2349e+03 | ||
%12.4e 1234.875 1.2349e+03 | ||
%+-12.4e 1234.875 +1.2349e+03 | ||
%+12.4e 1234.875 +1.2349e+03 | ||
%+-12.4e -1234.875 -1.2349e+03 | ||
%+12.4e -1234.875 -1.2349e+03 | ||
%e 1234567E96 1.234567e+102 exponent too big skip: os390 | ||
%e .1234567E-101 1.234567e-102 exponent too small skip: os390 | ||
%f 1234.875 1234.875000 | ||
%+f 1234.875 +1234.875000 | ||
%#f 1234.875 1234.875000 | ||
%f -1234.875 -1234.875000 | ||
%+f -1234.875 -1234.875000 | ||
%#f -1234.875 -1234.875000 | ||
%6f 1234.875 1234.875000 | ||
%*f [6, 1234.875] 1234.875000 | ||
%.0f -0.1 -0 C library bug: no minus skip: VMS | ||
%.0f 1234.875 1235 | ||
%.1f 1234.875 1234.9 | ||
%-8.1f 1234.875 1234.9 | ||
%8.1f 1234.875 1234.9 | ||
%+-8.1f 1234.875 +1234.9 | ||
%+8.1f 1234.875 +1234.9 | ||
%+-8.1f -1234.875 -1234.9 | ||
%+8.1f -1234.875 -1234.9 | ||
%*.*f [5, 2, 12.3456] 12.35 | ||
%f 0 0.000000 | ||
%.0f 0 0 | ||
%.0f 2**38 274877906944 Should have exact int'l rep'n | ||
%.0f 0.1 0 | ||
%.0f 0.6 1 Known to fail with sfio, (irix|nonstop-ux|powerux); -DHAS_LDBL_SPRINTF_BUG may fix | ||
%.0f -0.6 -1 Known to fail with sfio, (irix|nonstop-ux|powerux); -DHAS_LDBL_SPRINTF_BUG may fix | ||
%.0f 1.6 2 | ||
%.0f -1.6 -2 | ||
%.0f 1 1 | ||
%#.0f 1 1. | ||
%.0lf 1 1 'l' should have no effect | ||
%.0hf 1 %.0hf INVALID 'h' should be rejected | ||
%g 12345.6789 12345.7 | ||
%+g 12345.6789 +12345.7 | ||
%#g 12345.6789 12345.7 | ||
%.0g -0.0 -0 C99 standard mandates minus sign but C89 does not skip: MSWin32 VMS hpux:10.20 openbsd netbsd:1.5 irix | ||
%.0g 12345.6789 1e+04 | ||
%#.0g 12345.6789 1.e+04 | ||
%.2g 12345.6789 1.2e+04 | ||
%.*g [2, 12345.6789] 1.2e+04 | ||
%.9g 12345.6789 12345.6789 | ||
%12.9g 12345.6789 12345.6789 | ||
%012.9g 12345.6789 0012345.6789 | ||
%-12.9g 12345.6789 12345.6789 | ||
%*.*g [-12, 9, 12345.6789] 12345.6789 | ||
%-012.9g 12345.6789 12345.6789 | ||
%g -12345.6789 -12345.7 | ||
%+g -12345.6789 -12345.7 | ||
%g 1234567.89 1.23457e+06 | ||
%+g 1234567.89 +1.23457e+06 | ||
%#g 1234567.89 1.23457e+06 | ||
%g -1234567.89 -1.23457e+06 | ||
%+g -1234567.89 -1.23457e+06 | ||
%#g -1234567.89 -1.23457e+06 | ||
%g 0.00012345 0.00012345 | ||
%g 0.000012345 1.2345e-05 | ||
%g 1234567E96 1.23457e+102 | ||
%g .1234567E-101 1.23457e-102 | ||
%g 0 0 | ||
%13g 1234567.89 1.23457e+06 | ||
%+13g 1234567.89 +1.23457e+06 | ||
%013g 1234567.89 001.23457e+06 | ||
%-13g 1234567.89 1.23457e+06 | ||
%g .1234567E-101 1.23457e-102 exponent too small skip: os390 | ||
%g 1234567E96 1.23457e+102 exponent too big skip: os390 | ||
%h '' %h INVALID | ||
%i 123456.789 123456 Synonym for %d | ||
%j '' %j INVALID | ||
%k '' %k INVALID | ||
%l '' %l INVALID | ||
%m '' %m INVALID | ||
%s sprintf('%%n%n %d', $n, $n) %n 2 Slight sneakiness to test %n | ||
%o 2**32-1 37777777777 | ||
%+o 2**32-1 37777777777 | ||
%#o 2**32-1 037777777777 | ||
%o 642 1202 check smaller octals across platforms | ||
%+o 642 1202 | ||
%#o 642 01202 | ||
%d $p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/ 1 Coarse hack: hex from %p? | ||
%d $p=sprintf('%-8p',$p);$p=~/^[0-9a-f]+\s*$/ 1 Coarse hack: hex from %p? | ||
%#p '' %#p INVALID | ||
%q '' %q INVALID | ||
%r '' %r INVALID | ||
%s 'string' string | ||
%10s 'string' string | ||
%+10s 'string' string | ||
%#10s 'string' string | ||
%010s 'string' 0000string | ||
%0*s [10, 'string'] 0000string | ||
%-10s 'string' string | ||
%3s 'string' string | ||
%.3s 'string' str | ||
%.*s [3, 'string'] str | ||
%t '' %t INVALID | ||
%u 2**32-1 4294967295 | ||
%+u 2**32-1 4294967295 | ||
%#u 2**32-1 4294967295 | ||
%12u 2**32-1 4294967295 | ||
%012u 2**32-1 004294967295 | ||
%-12u 2**32-1 4294967295 | ||
%-012u 2**32-1 4294967295 | ||
%v '' %v INVALID | ||
%w '' %w INVALID | ||
%x 2**32-1 ffffffff | ||
%+x 2**32-1 ffffffff | ||
%#x 2**32-1 0xffffffff | ||
%10x 2**32-1 ffffffff | ||
%010x 2**32-1 00ffffffff | ||
%-10x 2**32-1 ffffffff | ||
%-010x 2**32-1 ffffffff | ||
%0-10x 2**32-1 ffffffff | ||
%0*x [-10, ,2**32-1] ffffffff | ||
%vx [version::qv("1.2.3")] 1.2.3 | ||
%vx [version::qv("1.20.300")] 1.14.12c | ||
%y '' %y INVALID | ||
%z '' %z INVALID | ||
%2$d %1$d [12, 34] 34 12 | ||
%*2$d [12, 3] 12 | ||
%2$d %d [12, 34] 34 12 | ||
%2$d %d %d [12, 34] 34 12 34 | ||
%3$d %d %d [12, 34, 56] 56 12 34 | ||
%2$*3$d %d [12, 34, 3] 34 12 | ||
%*3$2$d %d [12, 34, 3] %*3$2$d 12 INVALID | ||
%2$d 12 0 UNINIT | ||
%0$d 12 %0$d INVALID | ||
%1$$d 12 %1$$d INVALID | ||
%1$1$d 12 %1$1$d INVALID | ||
%*2$*2$d [12, 3] %*2$*2$d INVALID | ||
%*2*2$d [12, 3] %*2*2$d INVALID | ||
%*2$1d [12, 3] %*2$1d INVALID | ||
%0v2.2d '' | ||
%vc,%d [63, 64, 65] %vc,63 INVALID | ||
%v%,%d [63, 64, 65] %v%,63 INVALID | ||
%vd,%d ["\x1", 2, 3] 1,2 | ||
%vf,%d [1, 2, 3] %vf,1 INVALID | ||
%vF,%d [1, 2, 3] %vF,1 INVALID | ||
%ve,%d [1, 2, 3] %ve,1 INVALID | ||
%vE,%d [1, 2, 3] %vE,1 INVALID | ||
%vg,%d [1, 2, 3] %vg,1 INVALID | ||
%vG,%d [1, 2, 3] %vG,1 INVALID | ||
%vp '' %vp INVALID | ||
%vn '' %vn INVALID | ||
%vs,%d [1, 2, 3] %vs,1 INVALID | ||
%v_ '' %v_ INVALID | ||
%v#x '' %v#x INVALID | ||
%v02x "\x66\x6f\x6f\012" 66.6f.6f.0a | ||
%#v.8b "\141\000\142" 0b01100001.00000000.0b01100010 perl #39530 | ||
%#v.4o "\141\000\142" 0141.0000.0142 perl #39530 | ||
%#v.3i "\141\000\142" 097.000.098 perl #39530 | ||
%#v.2x "\141\000\142" 0x61.00.0x62 perl #39530 | ||
%#v.2X "\141\000\142" 0X61.00.0X62 perl #39530 | ||
%#v.8b "\141\017\142" 0b01100001.0b00001111.0b01100010 perl #39530 | ||
%#v.4o "\141\017\142" 0141.0017.0142 perl #39530 | ||
%#v.3i "\141\017\142" 097.015.098 perl #39530 | ||
%#v.2x "\141\017\142" 0x61.0x0f.0x62 perl #39530 | ||
%#v.2X "\141\017\142" 0X61.0X0F.0X62 perl #39530 | ||
%#*v.8b ["][", "\141\000\142"] 0b01100001][00000000][0b01100010 perl #39530 | ||
%#*v.4o ["][", "\141\000\142"] 0141][0000][0142 perl #39530 | ||
%#*v.3i ["][", "\141\000\142"] 097][000][098 perl #39530 | ||
%#*v.2x ["][", "\141\000\142"] 0x61][00][0x62 perl #39530 | ||
%#*v.2X ["][", "\141\000\142"] 0X61][00][0X62 perl #39530 | ||
%#*v.8b ["][", "\141\017\142"] 0b01100001][0b00001111][0b01100010 perl #39530 | ||
%#*v.4o ["][", "\141\017\142"] 0141][0017][0142 perl #39530 | ||
%#*v.3i ["][", "\141\017\142"] 097][015][098 perl #39530 | ||
%#*v.2x ["][", "\141\017\142"] 0x61][0x0f][0x62 perl #39530 | ||
%#*v.2X ["][", "\141\017\142"] 0X61][0X0F][0X62 perl #39530 | ||
%#v.8b "\141\x{1e01}\000\142\x{1e03}" 0b01100001.0b1111000000001.00000000.0b01100010.0b1111000000011 perl #39530 | ||
%#v.4o "\141\x{1e01}\000\142\x{1e03}" 0141.017001.0000.0142.017003 perl #39530 | ||
%#v.3i "\141\x{1e01}\000\142\x{1e03}" 097.7681.000.098.7683 perl #39530 | ||
%#v.2x "\141\x{1e01}\000\142\x{1e03}" 0x61.0x1e01.00.0x62.0x1e03 perl #39530 | ||
%#v.2X "\141\x{1e01}\000\142\x{1e03}" 0X61.0X1E01.00.0X62.0X1E03 perl #39530 | ||
%#v.8b "\141\x{1e01}\017\142\x{1e03}" 0b01100001.0b1111000000001.0b00001111.0b01100010.0b1111000000011 perl #39530 | ||
%#v.4o "\141\x{1e01}\017\142\x{1e03}" 0141.017001.0017.0142.017003 perl #39530 | ||
%#v.3i "\141\x{1e01}\017\142\x{1e03}" 097.7681.015.098.7683 perl #39530 | ||
%#v.2x "\141\x{1e01}\017\142\x{1e03}" 0x61.0x1e01.0x0f.0x62.0x1e03 perl #39530 | ||
%#v.2X "\141\x{1e01}\017\142\x{1e03}" 0X61.0X1E01.0X0F.0X62.0X1E03 perl #39530 | ||
%V-%s ["Hello"] %V-Hello INVALID | ||
%K %d %d [13, 29] %K 13 29 INVALID | ||
%*.*K %d [13, 29, 76] %*.*K 13 INVALID | ||
%4$K %d [45, 67] %4$K 45 INVALID | ||
%d %K %d [23, 45] 23 %K 45 INVALID | ||
%*v*999\$d %d %d [11, 22, 33] %*v*999\$d 11 22 INVALID | ||
%#b 0 0 | ||
%#o 0 0 | ||
%#x 0 0 | ||
%2147483647$v2d '' | ||
%*2147483647$v2d '' UNINIT | ||
|
||
# vim: sw=4 et |