develooper Front page | perl.perl6.internals | Postings from July 2002

[perl #15680] [PATCH] More tests

Thread Previous
From:
Simon Glover
Date:
July 27, 2002 11:53
Subject:
[perl #15680] [PATCH] More tests
Message ID:
rt-15680-31778.5.46428263633928@perl
# New Ticket Created by  Simon Glover 
# Please include the string:  [perl #15680]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=15680 >



 The patches below add tests for:

  * jsr

  * bor_i_i, bxor_i_i and band_i_i

  * not_i_i, or_i_i_i, and_i_i_i

  * eq_n_n

  * clone_s_s, set_i_s

  * inc_p, dec_p and unless_p

 and improves the test coverage for:

  * ne_i_i, eq_i_i

  * set_s_n


 Simon


--- t/op/basic.t.old	Mon Jul 22 19:18:19 2002
+++ t/op/basic.t	Mon Jul 22 19:21:11 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 14;
+use Parrot::Test tests => 15;

 # It would be very embarrassing if these didn't work...
 output_is(<<'CODE', '', "noop, end");
@@ -106,4 +106,17 @@ output_is(<<'CODE', 32, "Predeclared opc
      end
 CODE

+output_is(<<'CODE', <<'OUTPUT', "jsr");
+     set_addr I1, FOO
+     jsr I1
+     print "and back again\n"
+     end
+
+FOO: print "There "
+     ret
+
+CODE
+There and back again
+OUTPUT
+
 1; # HONK

--- t/op/bitwise.t.old	Mon Jul 22 20:59:52 2002
+++ t/op/bitwise.t	Mon Jul 22 21:10:23 2002
@@ -1,6 +1,6 @@
 #perl -w

-use Parrot::Test tests => 15;
+use Parrot::Test tests => 18;

 output_is(<<'CODE', <<'OUTPUT', "shr_i_i (>>)");
 	set I0, 0b001100
@@ -142,7 +142,7 @@ CODE
 40
 OUTPUT

-output_is(<<'CODE', <<'OUTPUT', "bxor_i_i (~)");
+output_is(<<'CODE', <<'OUTPUT', "bxor_i_i (^)");
 	set	I0, 0b001100
 	set	I1, 0b100110
 	bxor	I2, I0, I1
@@ -160,7 +160,7 @@ CODE
 12
 OUTPUT

-output_is(<<'CODE', <<'OUTPUT', "bxor_i_ic (~)");
+output_is(<<'CODE', <<'OUTPUT', "bxor_i_ic (^)");
  	set I0, 0b001100
 	bxor I2, I0, 0b100110
  	print I2
@@ -177,6 +177,36 @@ CODE
 42
 OUTPUT

+output_is(<<'CODE', <<'OUTPUT', "bxor_i|ic (^)");
+ 	set I0, 0b001100
+        set I2, 0b000011
+	bxor I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b001100
+	bxor  I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b101010
+        bxor I2, I2
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b010101
+        bxor I2, 0b000011
+ 	print I2
+ 	print "\n"
+
+ 	end
+CODE
+15
+0
+0
+22
+OUTPUT
+
 output_is(<<'CODE', <<'OUTPUT', "band_i_i (&)");
 	set	I0, 0b001100
 	set	I1, 0b010110
@@ -212,6 +242,36 @@ CODE
 4
 OUTPUT

+output_is(<<'CODE', <<'OUTPUT', "band_i|ic (&)");
+ 	set I0, 0b001100
+        set I2, 0b000011
+	band I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b001100
+	band  I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b101010
+        band I2, I2
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b010101
+        band I2, 0b000011
+ 	print I2
+ 	print "\n"
+
+ 	end
+CODE
+0
+12
+42
+1
+OUTPUT
+
 output_is(<<'CODE', <<'OUTPUT', "bor_i_i (|)");
  	set I0, 0b001100
  	set I1, 0b010110
@@ -247,6 +307,36 @@ CODE
 30
 OUTPUT

+output_is(<<'CODE', <<'OUTPUT', "bor_i|ic (|)");
+ 	set I0, 0b001100
+        set I2, 0b000011
+	bor I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b001100
+	bor  I2, I0
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b101010
+        bor I2, I2
+ 	print I2
+ 	print "\n"
+
+        set I2, 0b010101
+        bor I2, 0b000011
+ 	print I2
+ 	print "\n"
+
+ 	end
+CODE
+15
+12
+42
+23
+OUTPUT
+
 # use C<and> to only check low order bits, this should be platform nice
 output_is(<<'CODE', <<'OUTPUT', "bnot_i (~)");
 	set	I0, 0b001100

--- t/op/integer.t.old	Mon Jul 22 19:40:51 2002
+++ t/op/integer.t	Mon Jul 22 20:13:51 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 35;
+use Parrot::Test tests => 39;

 output_is(<<CODE, <<OUTPUT, "set_i_ic");
 	# XXX: Need a test for writing outside the set of available
@@ -439,6 +439,8 @@ output_is(<<CODE, <<OUTPUT, "eq i, i|ic
 	print	"done 2\\n"
 	bsr	BR3
 	print	"done 3\\n"
+        bsr     BR4
+        print   "Shouldn't get here \\n"

 	end

@@ -454,11 +456,16 @@ BR3:	eq	I0, I1
 	print	"not equal, equal int regs "
 	ret

+BR4:    eq      12, 13
+        print   "done 4\\n"
+        end
+
 CODE
 the word
 done 1
 done 2
 done 3
+done 4
 OUTPUT

 output_is(<<CODE, <<OUTPUT, "ne_i_ic");
@@ -525,6 +532,8 @@ output_is(<<CODE, <<OUTPUT, "ne ic, i (p
 	print	"done 2\\n"
 	bsr	BR3
 	print	"done 3\\n"
+        bsr     BR4
+        print   "Shouldn't get here\\n"

 	end

@@ -539,11 +548,17 @@ BR2:	ne	10, 12
 BR3:	ne	I0, I1
 	print	"10 is 12, even when in I reg "
 	ret
+
+BR4:    ne      12, 12
+        print   "done 4\\n"
+        end
+
 CODE
 start
 done 1
 done 2
 done 3
+done 4
 OUTPUT

 output_is(<<CODE, <<OUTPUT, "lt_i_ic");
@@ -822,6 +837,141 @@ ok 2
 ok 3
 OUTPUT

+output_is(<<'CODE', <<OUTPUT, "not_i_i");
+        set I0, 1
+        not I1, I0
+        print I1
+        print "\n"
+
+        not I2, I1
+        print I2
+        print "\n"
+
+        set I3, 12345
+        not I4, I3
+        print I4
+        print "\n"
+
+        set I5, -1
+        not I6, I5
+        print I6
+        print "\n"
+
+        not I7, 0
+        print I7
+        print "\n"
+        not I7, 1
+        print I7
+        print "\n"
+
+        end
+CODE
+0
+1
+0
+0
+1
+0
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "and");
+        set I0, 0
+        set I1, 10
+
+        set I2, 1
+        and I2, I1, I0
+        print I2
+        print "\n"
+
+        set I2, 1
+        and I2, I0, I1
+        print I2
+        print "\n"
+
+        set I2, 1
+        and I2, I0, I0
+        print I2
+        print "\n"
+
+        set I2, 1
+        and I2, I2, I1
+        print I2
+        print "\n"
+
+        end
+CODE
+0
+0
+0
+10
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "or");
+        set I0, 0
+        set I1, 10
+
+        set I2, 42
+        or I2, I1, I0
+        print I2
+        print "\n"
+
+        set I2, 42
+        or I2, I0, I1
+        print I2
+        print "\n"
+
+        or I2, I0, I0
+        print I2
+        print "\n"
+
+        or I2, I2, I1
+        print I2
+        print "\n"
+
+        end
+CODE
+10
+10
+0
+10
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "xor");
+        set I0, 0
+        set I1, 2
+
+        set I2, 42
+        xor I2, I1, I0
+        print I2
+        print "\n"
+
+        set I2, 42
+        xor I2, I0, I1
+        print I2
+        print "\n"
+
+        xor I2, I0, I0
+        print I2
+        print "\n"
+
+        xor I2, I1, I1
+        print I2
+        print "\n"
+
+        set I2, 1
+        xor I2, I2, I2
+        print I2
+        print "\n"
+
+        end
+CODE
+2
+2
+0
+0
+0
+OUTPUT
+
 output_is(<<CODE, <<OUTPUT, "inc_i");
 	set	I0, 0

--- t/op/number.t.old	Mon Jul 22 20:38:06 2002
+++ t/op/number.t	Mon Jul 22 20:44:20 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 32;
+use Parrot::Test tests => 33;
 use Test::More;

 output_is(<<CODE, <<OUTPUT, "set_n_nc");
@@ -386,6 +386,59 @@ ok 1
 ok 2
 OUTPUT

+output_is(<<'CODE', <<OUTPUT, "eq_n");
+        set     N0, 1.234567
+        set     N1, 1.234567
+        set     N2, 0.3
+
+        bsr     BR1
+        print   "ok 1\n"
+        bsr     BR2
+        print   "ok 2\n"
+        bsr     BR3
+        print   "ok 3\n"
+        bsr     BR4
+        print   "ok 4\n"
+        bsr     BR5
+        print   "ok 5\n"
+        bsr     BR6
+        print   "Shouldn't get here\n"
+        end
+
+BR1:    eq N0, N1
+        print "not ok 1\n"
+        ret
+
+BR2:    eq N0, N0
+        print "not ok 2\n"
+        ret
+
+BR3:    eq 1.234567, N0
+        print "not ok 3\n"
+        ret
+
+BR4:    eq N0, 1.234567
+        print "not ok 4\n"
+        ret
+
+BR5:    eq 1.234567, 1.234567
+        print "not ok 5\n"
+        ret
+
+BR6:    eq N0, N2
+        print "ok 6\n"
+        end
+
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+OUTPUT
+
+
 output_is(<<CODE, <<OUTPUT, "ne_n_ic");
 	set	N0, -22.222222
 	set	N1, -22.222222

--- t/op/string.t.old	Mon Jul 22 20:15:12 2002
+++ t/op/string.t	Mon Jul 22 20:36:15 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 85;
+use Parrot::Test tests => 87;
 use Test::More;

 output_is( <<'CODE', <<OUTPUT, "set_s_s|sc" );
@@ -14,6 +14,26 @@ JAPH
 JAPH
 OUTPUT

+output_is( <<'CODE', <<OUTPUT, "clone" );
+        set     S0, "Foo\n"
+	clone   S1, S0
+        print   S0
+	print   S1
+
+	clone   S1, "Bar\n"
+	print   S1
+        chopn   S1, 1   # Check that the contents of S1 are no longer constant
+	print   S1
+        print   "\n"
+
+	end
+CODE
+Foo
+Foo
+Bar
+Bar
+OUTPUT
+
 output_is( <<'CODE', '4', "length_i_s" );
 	set	I4, 0
 	set	S4, "JAPH"
@@ -1218,16 +1238,58 @@ CODE
 -1
 OUTPUT

-output_is(<<'CODE',<<OUTPUT,"string to num");
+output_is(<<'CODE',<<OUTPUT,"num to string");
     set N0, 80.43
     set S0, N0
     print S0
     print "\n"
+
+    set N0, -1.111111
+    set S0, N0
+    print S0
+    print "\n"
     end
 CODE
 80.430000
+-1.111111
 OUTPUT

+output_is(<<'CODE', <<OUTPUT, "string to int");
+	set	S0, "123"
+	set	I0, S0
+	print	I0
+	print	"\n"
+
+	set	S0, " 1"
+	set	I0, S0
+	print	I0
+	print	"\n"
+
+	set	S0, "-1"
+	set	I0, S0
+	print	I0
+	print	"\n"
+
+        set     S0, "Not a number"
+ 	set	I0, S0
+	print	I0
+	print	"\n"
+
+	set	S0, ""
+	set	I0, S0
+	print	I0
+	print	"\n"
+
+	end
+CODE
+123
+1
+-1
+0
+0
+OUTPUT
+
+
 # Set all string registers to values given by &$_[0](reg num)
 sub set_str_regs {
   my $code = shift;

--- t/pmc/pmc.t.old	Mon Jul 22 20:46:19 2002
+++ t/pmc/pmc.t	Sat Jul 27 14:17:01 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 60;
+use Parrot::Test tests => 65;
 use Test::More;

 my $fp_equality_macro = <<'ENDOFMACRO';
@@ -934,6 +934,26 @@ ok 1
 ok 2
 OUTPUT

+output_is(<<CODE, <<OUTPUT, "unless (P) - Int");
+	new	P0, .PerlInt
+
+	set	P0, 0
+	unless	P0, OK1
+	print	"not "
+OK1:	print	"ok 1\\n"
+
+	set	P0, 1
+	unless	P0, BAD2
+	branch OK2
+BAD2:	print	"not "
+OK2:	print	"ok 2\\n"
+
+	end
+CODE
+ok 1
+ok 2
+OUTPUT
+
 output_is(<<CODE, <<OUTPUT, "if (P) - Num");
 	new	P0, .PerlInt

@@ -954,6 +974,26 @@ ok 1
 ok 2
 OUTPUT

+output_is(<<CODE, <<OUTPUT, "unless (P) - Num");
+	new	P0, .PerlInt
+
+	set	P0, 0.0
+	unless	P0, OK1
+	print	"not "
+OK1:	print	"ok 1\\n"
+
+	set	P0, 1.1
+	unless	P0, BAD2
+	branch OK2
+BAD2:	print	"not "
+OK2:	print	"ok 2\\n"
+
+	end
+CODE
+ok 1
+ok 2
+OUTPUT
+
 output_is(<<CODE, <<OUTPUT, "if (P) - String");
 	new	P0, .PerlString

@@ -1017,6 +1057,26 @@ ok 8
 ok 9
 OUTPUT

+output_is(<<CODE, <<OUTPUT, "unless (P) - String");
+	new	P0, .PerlString
+
+        set     P0, "0"
+        unless  P0, OK1
+        print   "not"
+OK1:	print	"ok 1\\n"
+
+	set	P0, "1"
+	unless	P0, BAD2
+        branch  OK2
+BAD2:	print	"not "
+OK2:	print	"ok 2\\n"
+
+	end
+CODE
+ok 1
+ok 2
+OUTPUT
+
 output_is(<<"CODE", <<'OUTPUT', "undef-logical");
 	new P0, .PerlUndef
 	new P1, .PerlUndef
@@ -1337,4 +1397,42 @@ ok 1
 ok 2
 OUTPUT

+output_is(<<'CODE', <<OUTPUT, "inc, PerlInt");
+    new P3, .PerlInt
+    set P3, 0
+    inc P3
+    print P3
+    print "\n"
+
+LP: inc P3
+    set I3, P3
+    lt I3, 1000, LP
+    print P3
+    print "\n"
+
+    end
+CODE
+1
+1000
+OUTPUT
+
+output_is(<<'CODE', <<OUTPUT, "dec, PerlInt");
+    new P3, .PerlInt
+    set P3, 0
+    dec P3
+    print P3
+    print "\n"
+
+LP: dec P3
+    set I3, P3
+    gt I3, -2000, LP
+    print P3
+    print "\n"
+
+    end
+CODE
+-1
+-2000
+OUTPUT
+
 1;




Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About