cvsuser 03/07/31 16:20:39
Modified: t/op conv.t
Log:
Test overflow in both directions
Revision Changes Path
1.3 +94 -5 parrot/t/op/conv.t
Index: conv.t
===================================================================
RCS file: /cvs/public/parrot/t/op/conv.t,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- conv.t 31 Jul 2003 18:51:27 -0000 1.2
+++ conv.t 31 Jul 2003 23:20:39 -0000 1.3
@@ -1,6 +1,6 @@
#! perl -w
-use Parrot::Test tests => 8;
+use Parrot::Test tests => 12;
use Test::More;
output_is(<<'CODE', <<OUTPUT, "conv_i1_i");
@@ -16,11 +16,21 @@
conv_i1 I0
print I0
print "\n"
+ dec I0
+ conv_i1 I0
+ print I0
+ print "\n"
+ dec I0
+ conv_i1 I0
+ print I0
+ print "\n"
end
CODE
127
-128
-127
+-128
+127
OUTPUT
output_is(<<'CODE', <<OUTPUT, "conv_u1_i");
@@ -40,12 +50,17 @@
conv_u1 I0
print I0
print "\n"
+ dec I0
+ conv_u1 I0
+ print I0
+ print "\n"
end
CODE
127
128
255
0
+255
OUTPUT
output_is(<<'CODE', <<OUTPUT, "conv_i2_i");
@@ -61,11 +76,21 @@
conv_i2 I0
print I0
print "\n"
+ dec I0
+ conv_i2 I0
+ print I0
+ print "\n"
+ dec I0
+ conv_i2 I0
+ print I0
+ print "\n"
end
CODE
32767
-32768
-32767
+-32768
+32767
OUTPUT
output_is(<<'CODE', <<OUTPUT, "conv_u2_i");
@@ -85,16 +110,21 @@
conv_u2 I0
print I0
print "\n"
+ dec I0
+ conv_u2 I0
+ print I0
+ print "\n"
end
CODE
32767
32768
65535
0
+65535
OUTPUT
-output_is(<<'CODE', <<OUTPUT, "conv_i1_ofv_i");
+output_is(<<'CODE', <<OUTPUT, "conv_i1_ofv_i, positive direction");
set I0, 127
conv_i1_ovf I0
print I0
@@ -109,8 +139,22 @@
Overflow exception for conv_i1_ovf
OUTPUT
+output_is(<<'CODE', <<OUTPUT, "conv_i1_ofv_i, negative direction");
+ set I0, -128
+ conv_i1_ovf I0
+ print I0
+ print "\n"
+ dec I0
+ conv_i1_ovf I0
+ print I0
+ print "\n"
+ end
+CODE
+-128
+Overflow exception for conv_i1_ovf
+OUTPUT
-output_is(<<'CODE', <<OUTPUT, "conv_u1_ofv_i");
+output_is(<<'CODE', <<OUTPUT, "conv_u1_ofv_i, positive direction");
set I0, 255
conv_u1_ovf I0
print I0
@@ -125,7 +169,22 @@
Overflow exception for conv_u1_ovf
OUTPUT
-output_is(<<'CODE', <<OUTPUT, "conv_i2_ofv_i");
+output_is(<<'CODE', <<OUTPUT, "conv_u1_ofv_i, negative direction");
+ set I0, 0
+ conv_u1_ovf I0
+ print I0
+ print "\n"
+ dec I0
+ conv_u1_ovf I0
+ print I0
+ print "\n"
+ end
+CODE
+0
+Overflow exception for conv_u1_ovf
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "conv_i2_ofv_i, positive direction");
set I0, 32767
conv_i2_ovf I0
print I0
@@ -140,7 +199,22 @@
Overflow exception for conv_i2_ovf
OUTPUT
-output_is(<<'CODE', <<OUTPUT, "conv_u2_ofv_i");
+output_is(<<'CODE', <<OUTPUT, "conv_i2_ofv_i, negative direction");
+ set I0, -32768
+ conv_i2_ovf I0
+ print I0
+ print "\n"
+ dec I0
+ conv_i2_ovf I0
+ print I0
+ print "\n"
+ end
+CODE
+-32768
+Overflow exception for conv_i2_ovf
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "conv_u2_ofv_i, positive direction");
set I0, 65535
conv_u2_ovf I0
print I0
@@ -152,6 +226,21 @@
end
CODE
65535
+Overflow exception for conv_u2_ovf
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "conv_u2_ofv_i, negative direction");
+ set I0, 0
+ conv_u2_ovf I0
+ print I0
+ print "\n"
+ dec I0
+ conv_u2_ovf I0
+ print I0
+ print "\n"
+ end
+CODE
+0
Overflow exception for conv_u2_ovf
OUTPUT