cvsuser 05/01/06 06:33:30
Modified: t/pmc sarray.t Log: Significantly expand test coverage Revision Changes Path 1.12 +239 -2 parrot/t/pmc/sarray.t Index: sarray.t =================================================================== RCS file: /cvs/public/parrot/t/pmc/sarray.t,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- sarray.t 6 Jan 2005 01:59:23 -0000 1.11 +++ sarray.t 6 Jan 2005 14:33:30 -0000 1.12 @@ -1,6 +1,6 @@ #! perl -w # Copyright: 2001-2003 The Perl Foundation. All Rights Reserved. -# $Id: sarray.t,v 1.11 2005/01/06 01:59:23 scog Exp $ +# $Id: sarray.t,v 1.12 2005/01/06 14:33:30 scog Exp $ =head1 NAME @@ -16,7 +16,7 @@ =cut -use Parrot::Test tests => 16; +use Parrot::Test tests => 33; use Test::More; my $fp_equality_macro = <<'ENDOFMACRO'; @@ -582,3 +582,240 @@ ok 3 ok 4 OUTPUT + +output_is(<< 'CODE', << 'OUTPUT', "Store PMC, get int"); + new P0, .SArray + set P0, 2 + new P1, .Integer + set P1, 11 + new P2, .Float + set P2, 1.1 + set P0[0], P1 + set P0[1], P2 + set I0, P0[0] + eq I0, 11, ok1 + print "not " +ok1: print "ok 1\n" + set I0, P0[1] + eq I0, 1, ok2 + print "not " +ok2: print "ok 2\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store num, get int"); + new P0, .SArray + set P0, 1 + set P0[0], 4.2 + set I0, P0[0] + print I0 + end +CODE +/SArray: Entry not an integer!/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store string, get int"); + new P0, .SArray + set P0, 1 + set P0[0], "Non-numeric string" + set I0, P0[0] + print I0 + end +CODE +/SArray: Entry not an integer!/ +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Store PMC, get num"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .SArray + set P0, 2 + new P1, .Integer + set P1, 11 + new P2, .Float + set P2, 1.1 + set P0[0], P1 + set P0[1], P2 + set N0, P0[0] + .fp_eq(N0, 11.0, ok1) + print "not " +ok1: print "ok 1\\n" + set N0, P0[1] + .fp_eq(N0, 1.1, ok2) + print "not " +ok2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store int, get num"); + new P0, .SArray + set P0, 1 + set P0[0], 12 + set N0, P0[0] + print N0 + end +CODE +/SArray: Entry not a number!/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store string, get num"); + new P0, .SArray + set P0, 1 + set P0[0], "Non-numeric string" + set N0, P0[0] + print N0 + end +CODE +/SArray: Entry not a number!/ +OUTPUT + +output_is(<< 'CODE', << 'OUTPUT', "Store PMC, get string"); + new P0, .SArray + set P0, 2 + new P1, .String + set P1, "Hello" + new P2, .Integer + set P2, 1010 + set P0[0], P1 + set P0[1], P2 + set S0, P0[0] + eq S0, "Hello", ok1 + print "not " +ok1: print "ok 1\n" + set S0, P0[1] + eq S0, "1010", ok2 + print "not " +ok2: print "ok 2\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store int, get string"); + new P0, .SArray + set P0, 1 + set P0[0], 12 + set S0, P0[0] + print S0 + end +CODE +/SArray: Entry not a string!/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Store num, get string"); + new P0, .SArray + set P0, 1 + set P0[0], 12.5 + set S0, P0[0] + print S0 + end +CODE +/SArray: Entry not a string!/ +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Store num, get PMC"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .SArray + set P0, 2 + set P0[0], 12.239 + set P0[1], -1.9742 + new P1, .Float + set P1, P0[0] + set N0, P1 + .fp_eq(N0, 12.239, ok1) + print "not " +ok1: print "ok 1\\n" + new P2, .Integer + set P2, P0[1] + set N0, P2 + .fp_eq(N0, -1.9742, ok2) + print "not " +ok2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: int"); + new P0, .SArray + set P0, 1 + set P0[5], 12 + set I0, P0[5] + print I0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: num"); + new P0, .SArray + set P0, 1 + set P0[5], 12.5 + set N0, P0[5] + print N0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: string"); + new P0, .SArray + set P0, 1 + set P0[5], "asdf" + set S0, P0[5] + print S0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: push int"); + new P0, .SArray + push P0, 12 + set I0, P0[0] + print I0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: push num"); + new P0, .SArray + push P0, 12.09 + set N0, P0[0] + print N0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: push string"); + new P0, .SArray + push P0, "Ygnve" + set S0, P0[0] + print S0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +output_like(<< 'CODE', << 'OUTPUT', "Out-of-bounds access: push pmc"); + new P0, .SArray + new P1, .Integer + set P1, 1234 + push P0, P1 + set I0, P0[0] + print I0 + end +CODE +/SArray index out of bounds/ +OUTPUT + +
