# New Ticket Created by  Steven Schubiger 
# Please include the string:  [perl #34544]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=34544 >


> The test file t/pmc/pmc.t is full of Perl* tests. 
> These should be factored out into t/pmc/perl*.t.

> The file itself should contain just common PMC functionality tests, 
> like the range or type checks.

> Thanks,
> leo
Index: t/pmc/pmc.t      
===================================================================
RCS file: /cvs/public/parrot/t/pmc/pmc.t,v
retrieving revision 1.102
diff -u -r1.102 pmc.t
--- t/pmc/pmc.t         Tue Mar 22 14:02:11 2005
+++ t/pmc/pmc.t         Tue Mar 22 20:35:22 2005
@@ -1,6 +1,6 @@
 #! perl -w
 
-# Copyright: 2001-2004 The Perl Foundation.  All Rights Reserved.
+# Copyright: 2001-2005 The Perl Foundation.  All Rights Reserved.
 # $Id: pmc.t,v 1.102 2005/03/22 13:02:11 leo Exp $
 
 =head1 NAME
@@ -17,7 +17,7 @@
 
 =cut
 
-use Parrot::Test tests => 51;
+use Parrot::Test tests => 20;
 use Test::More;
 use Parrot::PMC qw(%pmc_types);
 my $max_pmc = scalar(keys(%pmc_types)) + 1;
@@ -89,357 +89,6 @@
 Illegal PMC enum ($max_pmc) in new
 OUTPUT
 
-output_is(<<CODE, <<OUTPUT, "if (P) - Int");
-       new     P0, .PerlInt
-
-       set     P0, 1
-       if      P0, OK1
-       print   "not "
-OK1:   print   "ok 1\\n"
-
-       set     P0, 0
-       if      P0, BAD2
-       branch OK2
-BAD2:  print   "not "
-OK2:   print   "ok 2\\n"
-
-       end
-CODE
-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, .PerlNum
-
-       set     P0, 1.1
-       if      P0, OK1
-       print   "not "
-OK1:   print   "ok 1\\n"
-
-       set     P0, 0.0
-       if      P0, BAD2
-       branch OK2
-BAD2:  print   "not "
-OK2:   print   "ok 2\\n"
-
-       end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "unless (P) - Num");
-       new     P0, .PerlNum
-
-       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
-
-       set     P0, "I've told you once, I've told you twice..."
-       if      P0, OK1
-       print   "not "
-OK1:   print   "ok 1\\n"
-
-       set     P0, "0.0"
-       if      P0, OK2
-       print   "not "
-OK2:   print   "ok 2\\n"
-
-       set     P0, ""
-       if      P0, BAD3
-       branch OK3
-BAD3:  print   "not "
-OK3:   print   "ok 3\\n"
-
-       set     P0, "0"
-       if      P0, BAD4
-       branch OK4
-BAD4:  print   "not "
-OK4:   print   "ok 4\\n"
-
-       set     P0, "0e0"
-       if      P0, OK5
-       print   "not "
-OK5:   print   "ok 5\\n"
-
-       set     P0, "x"
-       if      P0, OK6
-       print   "not "
-OK6:   print   "ok 6\\n"
-
-       set     P0, "\\x0"
-       if      P0, OK7
-       print   "not "
-OK7:   print   "ok 7\\n"
-
-       set     P0, "\\n"
-       if      P0, OK8
-       print   "not "
-OK8:   print   "ok 8\\n"
-
-       set     P0, " "
-       if      P0, OK9
-       print   "not "
-OK9:   print   "ok 9\\n"
-
-       end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-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, .PerlInt
-       new P1, .PerlUndef
-       new P2, .PerlInt
-
-# undef or undef = 0
-       or P0, P1, P1
-       print P0
-        print "a"
-
-# undef and undef = 0
-       and P0, P1, P1
-       print P0
-        print "b"
-
-#undef xor undef = "0"
-        xor P0, P1, P1
-       print P0
-        print "c"
-
-# undef or foo = foo
-       set P2, 349
-       or P0, P1, P2
-       print P0
-
-# undef and foo = undef
-       and P0, P1, P2
-       print P0
-        print "c"
-
-#undef xor foo = foo
-        set P2, 910
-       xor P0, P1, P2
-       print P0
-
-# not undef = 1
-       not P0, P1
-       print "x"
-       print P1
-       print "y"
-       print P0
-       print "z"
-       print "\\n"
-       end
-CODE
-ab0c349c910xy1z
-OUTPUT
-
-output_is(<<"CODE", <<'OUTPUT', "undef-add");
[EMAIL PROTECTED] $fp_equality_macro ]}
-       new P1, .PerlUndef
-
-# undef + perlundef
-       new P0, .PerlUndef
-       add P0, P1, P1
-       print P0
-       print "\\n"
-
-# undef + perlint
-
-       new P0, .PerlUndef
-       new P2, .PerlInt
-       set P2, 947
-       add P0, P1, P2
-       print P0
-       print "\\n"
-
-# undef + perlnum
-
-       new P0, .PerlUndef
-       new P2, .PerlNum
-       set P2, 385.623
-       add P0, P1, P2
-       .fp_eq( P0, 385.623, OK)
-
-       print "not"
-OK:    print "ok"
-       print "\\n"
-
-       end
-CODE
-0
-947
-ok
-OUTPUT
-
-output_is(<<"CODE", <<'OUTPUT', "undef-subtract");
[EMAIL PROTECTED] $fp_equality_macro ]}
-       new P0, .PerlInt
-       new P1, .PerlUndef
-
-# undef - undef
-       sub P0, P1, P1
-       print P0
-       print "\\n"
-
-# undef - perlint
-       new P2, .PerlInt
-       set P2, 947
-       sub P0, P1, P2
-       print P0
-       print "\\n"
-
-# undef - perlnum
-
-       new P2, .PerlNum
-       set P2, 385.623
-       sub P0, P1, P2
-       .fp_eq( P0, -385.623, OK2)
-
-       print "not"
-OK2:   print "ok"
-       print "\\n"
-
-       end
-CODE
-0
--947
-ok
-OUTPUT
-
-output_is(<<"CODE", <<'OUTPUT', "undef-multiply");
[EMAIL PROTECTED] $fp_equality_macro ]}
-
-       new P0, .PerlInt
-       new P1, .PerlUndef
-       new P2, .PerlInt
-
-# Undef * Undef
-       mul P0, P1, P1
-       print P0
-       print "\\n"
-
-# Undef * PerlInt
-       set P2, 983
-       mul P0, P1, P2
-       print P0
-       print "\\n"
-
-# Undef * PerlNum
-       new P2, .PerlNum
-       set P2, 983.3
-       mul P0, P1, P2
-       print P0
-       print "\\n"
-
-       end
-CODE
-0
-0
-0
-OUTPUT
-
-output_is(<<"CODE", <<'OUTPUT', "undef-divide");
-       new P0, .PerlInt
-       new P1, .PerlUndef
-       new P2, .PerlInt
-
-# Undef / PerlInt
-       set P2, 19
-       div P0, P1, P2
-       print P0
-       print "\\n"
-
-# Undef / PerlNum
-       new P2, .PerlNum
-       set P2, 343.8
-       div P0, P1, P2
-       print P0
-       print "\\n"
-
-       end
-CODE
-0
-0
-OUTPUT
-
-output_is(<<"CODE", <<'OUTPUT', "undef-string");
-       new P0, .PerlUndef
-        set S0, P0
-        eq S0, "", OK
-        print "not "
-OK:     print "ok\\n"
-       end
-CODE
-ok
-OUTPUT
-
 output_is(<<CODE, <<OUTPUT, "typeof");
     new P0,.PerlInt
     typeof S0,P0
@@ -458,194 +107,6 @@
 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, "inc, PerlNum");
[EMAIL PROTECTED] $fp_equality_macro ]}
-     new P3, .PerlNum
-
-     set P3, -0.999
-     inc P3
-     .fp_eq(P3, 0.001, OK1)
-     print "not "
-OK1: print "ok 1\\n"
-
-     inc P3
-     .fp_eq(P3, 1.001, OK2)
-     print "not "
-OK2: print "ok 2\\n"
-
-     end
-CODE
-ok 1
-ok 2
-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
-
-output_is(<<"CODE", <<OUTPUT, "dec, PerlNum");
[EMAIL PROTECTED] $fp_equality_macro ]}
-     new P3, .PerlNum
-
-     set P3, 1.001
-     dec P3
-     .fp_eq(P3, 0.001, OK1)
-     print "not "
-OK1: print "ok 1\\n"
-
-     dec P3
-     .fp_eq(P3, -0.999, OK2)
-     print "not "
-OK2: print "ok 2\\n"
-
-     end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "mul_p_p, PerlInt");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlInt
-        new P1,.PerlInt
-        set P0,8
-        set P1,2
-        mul P0,P1
-        .fp_eq(P0,16,EQ1)
-        print "not "
-EQ1:   print "ok 1"
-        print "\\n"
-
-        new P2, .PerlNum
-        set P2, 0.0625
-        mul P0, P2
-        .fp_eq(P0,1,EQ2)
-        print "not "
-EQ2:   print "ok 2"
-        print "\\n"
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "mul_p_p, PerlNum");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlNum
-        new P1,.PerlNum
-        set P0,-2.5
-        set P1,2.5
-        mul P0,P1
-        .fp_eq(P0,-6.25,EQ1)
-        print "not "
-EQ1:   print "ok 1"
-       print "\\n"
-
-        new P2, .PerlInt
-        set P2, 2
-        mul P0, P2
-        .fp_eq(P0,-12.5,EQ2)
-        print "not "
-EQ2:   print "ok 2"
-       print "\\n"
-
-       end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "mul_p_i, PerlInt");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlInt
-        set P0,8
-        mul P0,2
-        .fp_eq(P0,16,EQ1)
-        print "not "
-EQ1:    print "ok 1"
-        print "\\n"
-        end
-CODE
-ok 1
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "div_p_i, PerlInt");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlInt
-        set P0,8
-        div P0,2
-        .fp_eq(P0,4,EQ1)
-        print "not "
-EQ1:    print "ok 1"
-        print "\\n"
-        end
-CODE
-ok 1
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "mod_p_i, PerlInt");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlInt
-        set P0,3
-        mod P0,6
-        .fp_eq(P0,3,EQ1)
-        print "not "
-EQ1:    print "ok 1"
-        print "\\n"
-        end
-CODE
-ok 1
-OUTPUT
-
-output_is(<<CODE, <<OUTPUT, "mod_p_p_i, PerlInt");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0,.PerlInt
-        set P0,7
-        new P1,.PerlInt
-        mod P1, P0, 6
-        .fp_eq(P1,1,EQ1)
-        print "not "
-EQ1:    print "ok 1"
-        print "\\n"
-        end
-CODE
-ok 1
-OUTPUT
-
 my $checkTypes;
 while (my ($type, $id) = each %pmc_types) {
     next if $type eq "Null";
@@ -839,86 +300,6 @@
 ok 6
 OUTPUT
 
-output_is(<<'CODE', <<OUTPUT, "arithmetic with PerlUndef and native ints");
-        new P0, .PerlUndef
-        add P0, 10
-        set I1, P0
-        print I1
-        print "\n"
-
-        new P0, .PerlUndef
-        sub P0, 20
-        set I1, P0
-        print I1
-        print "\n"
-
-        new P0, .PerlUndef
-        mul P0, 30
-        set I1, P0
-        print I1
-        print "\n"
-
-        new P0, .PerlUndef
-        div P0, 40
-        set I1, P0
-        print I1
-        print "\n"
-        end
-CODE
-10
--20
-0
-0
-OUTPUT
-
-output_is(<<"CODE", <<OUTPUT, "arithmetic with PerlUndef and native floats");
[EMAIL PROTECTED] $fp_equality_macro ]}
-        new P0, .PerlUndef
-        add P0, 10.0
-        set N1, P0
-        .fp_ne(N1, 10.0, ERROR)
-        print "ok 1\\n"
-
-        new P0, .PerlUndef
-        sub P0, 2.345
-        set N1, P0
-        .fp_ne(N1, -2.345, ERROR)
-        print "ok 2\\n"
-
-        new P0, .PerlUndef
-        mul P0, 32.5
-        set N1, P0
-        .fp_ne(N1, 0.000, ERROR)
-        print "ok 3\\n"
-
-        new P0, .PerlUndef
-        div P0, 0.5
-        set N1, P0
-        .fp_ne(N1, 0.000, ERROR)
-        print "ok 4\\n"
-        branch DONE
-ERROR:  print "not ok\\n"
-        print N1
-DONE:
-        end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-OUTPUT
-
-output_like(<<"CODE", <<'OUTPUT', "undef warning");
-       .include "warnings.pasm"
-       warningson .PARROT_WARNINGS_UNDEF_FLAG
-       new P0, .PerlUndef
-       print P0
-       end
-CODE
-/Use of uninitialized.*
-\s+in file .*pasm/i
-OUTPUT
-
 output_like(<<"CODE", <<'OUTPUT', "find_method");
        new P1, .PerlInt
        find_method P0, P1, "no_such_meth"
@@ -935,49 +316,6 @@
 /(unknown macro|unexpected DOT)/
 OUTPUT
 
-output_is(<<'CODE', <<OUTPUT, "repeat");
-        new P0, .PerlUndef
-        new P1, .PerlString
-        new P2, .PerlInt
-
-        set P2, 1024
-        repeat P1, P0, P2
-        set S1, P1
-        eq S1, "", OK1
-        print "not "
-OK1:    print "ok 1\n"
-
-        new P0, .PerlUndef
-        new P1, .PerlString
-        repeat P1, P0, 1024
-        set S1, P1
-        eq S1, "", OK2
-        print "not "
-OK2:    print "ok 2\n"
-       end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-output_is(<<'CODE', <<'OUTPUT', "bor undef");
-    new P0, .PerlUndef
-    bor P0, 0b00001111
-    print  P0
-    print "\n"
-
-    new P0, .PerlUndef
-    new P1, .PerlInt
-    set P1, 0b11110000
-    bor P0, P1
-    print P0
-    print "\n"
-    end
-CODE
-15
-240
-OUTPUT
-
 output_is(<<'CODE', <<'OUTPUT', "bxor undef");
     new P0, .PerlUndef
     bxor P0, 0b00001111
@@ -1014,55 +352,6 @@
 0
 OUTPUT
 
-output_is(<<'CODE', <<'OUTPUT', "bnot");
-    new P0, .PerlUndef
-
-# We use band in these tests to null out the high bits, and make the
-# tests independent of the size of our INTVALs
-    bnot P0, P0
-    band P0, 0b01010101
-    print P0
-    print "\n"
-
-    new P0, .PerlUndef
-    new P1, .PerlInt
-    set P1, 0b01100110
-    bnot P0, P1
-    band P0, 0b10011001
-    print P0
-    print "\n"
-    end
-CODE
-85
-153
-OUTPUT
-
-output_is(<<'CODE', <<'OUTPUT', "if/unless with Integer PMC");
-      new P0, .Integer
-      set P0, 10
-      if P0, OK1
-      print "not "
-OK1:  print "ok 1\n"
-      unless P0, BAD2
-      branch OK2
-BAD2: print "not "
-OK2:  print "ok 2\n"
-      set P0, 0
-      if P0, BAD3
-      branch OK3
-BAD3: print "not "
-OK3:  print "ok 3\n"
-      unless P0, OK4
-      print "not "
-OK4:  print "ok 4\n"
-      end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-OUTPUT
-
 output_is(<<'CODE', <<'OUTPUT', "eq_addr same");
       new P0, .Integer
       set P1, P0
@@ -1120,61 +409,6 @@
     end
 CODE
 ok
-OUTPUT
-
-output_is(<<'CODE', <<'OUTPUT', "rand int");
-    new P0, .Random
-    time I1
-    set P0, I1 # seed
-    set I0, P0
-    set I1, P0
-    ne I0, I1, ok1
-    print "not "
-ok1:print "ok 1\n"
-    set I2, P0[100]
-    ne I0, I2, ok2
-    print "not "
-ok2:print "ok 2\n"
-    ge I2, 0, ok3
-    print "not "
-ok3:print "ok 3\n"
-    lt I2, 100, ok4
-    print "not "
-ok4:print "ok 4\n"
-    end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-OUTPUT
-
-output_is(<<'CODE', <<'OUTPUT', "rand float");
-    new P0, .Random
-    set N0, P0
-    set N1, P0
-    ne N0, N1, ok1
-    print "not "
-ok1:print "ok 1\n"
-    ge N0, 0, ok2
-    print "not "
-ok2:print "ok 2\n"
-    lt N0, 1.0, ok3
-    print "not "
-ok3:print "ok 3\n"
-    ge N1, 0, ok4
-    print "not "
-ok4:print "ok 4\n"
-    lt N1, 1.0, ok5
-    print "not "
-ok5:print "ok 5\n"
-    end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
 OUTPUT
 
 output_is(<<'CODE', <<'OUTPUT', "issame");

Reply via email to