# New Ticket Created by  Simon Glover 
# Please include the string:  [netlabs #644]
# in the subject line of all future correspondence about this issue. 
# <URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=644 >



 This patch adds tests for the index, depth & intdepth ops, as well
 as adding an extra test for intsave/intrestore.

 Simon

--- t/op/string.t.old   Fri May 31 17:04:18 2002
+++ t/op/string.t       Fri May 31 17:33:25 2002
@@ -1,6 +1,6 @@
 #! perl -w

-use Parrot::Test tests => 77;
+use Parrot::Test tests => 82;

 output_is( <<'CODE', <<OUTPUT, "set_s_s|sc" );
        set     S4, "JAPH\n"
@@ -1012,6 +1012,133 @@
        end
 CODE

+output_is(<<'CODE',<<OUTPUT,"index, 3-arg form");
+      set S0, "Parrot"
+      set S1, "Par"
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      set S1, "rot"
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      set S1, "bar"
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      end
+CODE
+0
+3
+-1
+OUTPUT
+
+output_is(<<'CODE',<<OUTPUT,"index, 4-arg form");
+      set S0, "Barbarian"
+      set S1, "ar"
+      index I1, S0, S1, 0
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 2
+      print I1
+      print "\n"
+
+      set S1, "qwx"
+      index I1, S0, S1, 0
+      print I1
+      print "\n"
+
+      end
+CODE
+1
+4
+-1
+OUTPUT
+
+output_is(<<'CODE',<<OUTPUT,"index, null strings");
+      set S0, "Parrot"
+      set S1, ""
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 0
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 5
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 6
+      print I1
+      print "\n"
+
+      set S0, ""
+      set S1, "a"
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 0
+      print I1
+      print "\n"
+
+      end
+CODE
+-1
+-1
+-1
+-1
+-1
+-1
+OUTPUT
+
+output_is(<<'CODE',<<OUTPUT,"index, embedded nulls");
+      set S0, "Par\0\0rot"
+      set S1, "\0"
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 4
+      print I1
+      print "\n"
+
+      end
+CODE
+3
+4
+OUTPUT
+
+output_is(<<'CODE',<<OUTPUT,"index, big strings");
+      set S0, "a"
+      repeat S0, S0, 10000
+      set S1, "a"
+      repeat S1, S1, 500
+      index I1, S0, S1
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 1234
+      print I1
+      print "\n"
+
+      index I1, S0, S1, 9501
+      print I1
+      print "\n"
+
+      end
+CODE
+0
+1234
+-1
+OUTPUT
+

 # Set all string registers to values given by &$_[0](reg num)
 sub set_str_regs {
@@ -1076,3 +1203,4 @@
 }

 1;
+

--- t/op/stacks.t.old   Fri May 31 17:35:50 2002
+++ t/op/stacks.t       Fri May 31 17:48:31 2002
@@ -1,6 +1,6 @@
 #! perl -w

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

 # Tests for stack operations, currently push*, push_*_c and pop*
@@ -589,6 +589,32 @@
 OUTPUT
 }

+output_is(<<'CODE', <<'OUTPUT', "depth op");
+        depth I0
+        print I0
+        print "\n"
+
+        save "Foo"
+        depth I0
+        print I0
+        print "\n"
+        restore S0
+
+        set I1, 0
+LOOP:   save I1
+        inc I1
+        lt I1, 1024, LOOP
+        depth I0
+        print I0
+        print "\n"
+
+        end
+CODE
+0
+1
+1024
+OUTPUT
+
 output_is(<<'CODE', <<'OUTPUT', "intstack");
        intsave -1
        intsave 0
@@ -622,6 +648,52 @@
 43210-1
 OUTPUT

+output_is(<<'CODE', <<'OUTPUT', "intstack stress test");
+        set I0, 0
+LOOP:  intsave I0
+        inc I0
+        lt I0, 2048, LOOP
+
+LOOP2:  dec I0
+        intrestore I1
+        ne I0, I1, ERROR
+        gt I0, 0, LOOP2
+        print "ok\n"
+        end
+
+ERROR:  print "Not ok\n"
+        end
+
+CODE
+ok
+OUTPUT
+
+output_is(<<'CODE', <<'OUTPUT', "intdepth");
+        intdepth I0
+        print I0
+        print "\n"
+
+        intsave 1
+        intdepth I0
+        print I0
+        print "\n"
+        intrestore I2
+
+        set I1, 0
+LOOP:   intsave I1
+        inc I1
+        lt I1, 1024, LOOP
+        intdepth I0
+        print I0
+        print "\n"
+
+        end
+CODE
+0
+1
+1024
+OUTPUT
+
 ##############################

 # set integer registers to some value given by $code...


Reply via email to