cvsuser     04/01/12 11:11:24

  Modified:    t/pmc    objects.t
  Log:
    The following patch exercises all the variations including the
    susmentioned access thru a key pmc that may contain either a
    string or an int.
  
  (courtesy of St       phane Payrard)
  
  Revision  Changes    Path
  1.13      +269 -1    parrot/t/pmc/objects.t
  
  Index: objects.t
  ===================================================================
  RCS file: /cvs/public/parrot/t/pmc/objects.t,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -w -r1.12 -r1.13
  --- objects.t 5 Dec 2003 15:08:46 -0000       1.12
  +++ objects.t 12 Jan 2004 19:11:24 -0000      1.13
  @@ -1,6 +1,6 @@
   #! perl -w
   
  -use Parrot::Test tests => 22;
  +use Parrot::Test tests => 24;
   use Test::More;
   
   output_is(<<'CODE', <<'OUTPUT', "findclass (base class)");
  @@ -565,3 +565,271 @@
   130
   140
   OUTPUT
  +
  +
  +output_is(<<'CODE',  (join '', map { "$_\n" }42..65), "attributes");
  +   newclass P0, "Foo"
  +   find_type I1, "Foo"
  +   addattrib I0, P0, "b"
  +   addattrib I0, P0, "l"
  +   addattrib I0, P0, "a"
  +   new P1, I1
  +
  +   set  P1["Foo\x00a"], 42
  +   set  I2, P1["Foo\x00a"]
  +   print I2
  +   print "\n"
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], 43
  +   set  I2, P1[S0]
  +   print I2
  +   print "\n"
  +
  +   set  P1[2], 44
  +   set  I2, P1[2]
  +   print I2
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], 45
  +   set  I2, P1[I3]
  +   print I2
  +   print "\n"
  +
  +
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +
  +   set  P1[P2], 46
  +   set  I2, P1[P2]
  +   print I2
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +
  +   set  P1[P2], 47
  +   set  I2, P1[P2]
  +   print I2
  +   print "\n"
  +
  +
  +
  +# strings
  +
  +   set  P1["Foo\x00a"], "48"
  +   set  S2, P1["Foo\x00a"]
  +   print S2
  +   print "\n"
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], "49"
  +   set  S2, P1[S0]
  +   print S2
  +   print "\n"
  +
  +   set  P1[2], "50"
  +   set  S2, P1[2]
  +   print S2
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], "51"
  +   set  S2, P1[I3]
  +   print S2
  +   print "\n"
  +
  +
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +
  +   set  P1[P2], "52"
  +   set  S2, P1[P2]
  +   print S2
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +
  +   set  P1[P2], "53"
  +   set  S2, P1[P2]
  +   print S2
  +   print "\n"
  +
  +# pmc
  +
  +
  +   set  P1["Foo\x00a"], 54
  +   set  P4, P1["Foo\x00a"]
  +   print P4
  +   print "\n"
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], 55
  +   set  P4, P1[S0]
  +   print P4
  +   print "\n"
  +
  +   set  P1[2], 56
  +   set  P4, P1[2]
  +   print P4
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], 57
  +   set  P4, P1[I3]
  +   print P4
  +   print "\n"
  +
  +
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +
  +   set  P1[P2], 58
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +
  +   set  P1[P2], 59
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +
  +
  +   set  P1["Foo\x00a"], "60"
  +   set  P4, P1["Foo\x00a"]
  +   print P4
  +   print "\n"
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], "61"
  +   set  P4, P1[S0]
  +   print P4
  +   print "\n"
  +
  +   set  P1[2], "62"
  +   set  P4, P1[2]
  +   print P4
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], "63"
  +   set  P4, P1[I3]
  +   print P4
  +   print "\n"
  +
  +
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +
  +   set  P1[P2], "64"
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +
  +   set  P1[P2], "65"
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +   end
  +CODE
  +
  +my $output_re = join '', map {  "$_.00.*[\\n\\r]+" } 4..15;
  +$output_re = qr/^$output_re$/;
  +output_like(<<'CODE',  $output_re , "float attributes");
  +   newclass P0, "Foo"
  +   find_type I1, "Foo"
  +   addattrib I0, P0, "b"
  +   addattrib I0, P0, "l"
  +   addattrib I0, P0, "a"
  +   new P1, I1
  +
  +
  +   set  P1["Foo\x00a"], 4.00001
  +   set  N2, P1["Foo\x00a"]
  +   print N2
  +   print "\n"
  +
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], 5.00001
  +   set  N2, P1[S0]
  +   print N2
  +   print "\n"
  +
  +
  +   set  P1[2], 6.00001
  +   set  N2, P1[2]
  +   print N2
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], 7.00001
  +   set  N2, P1[I3]
  +   print N2
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +   set  P1[P2], 8.00001
  +   set  N2, P1[P2]
  +   print N2
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +   set  P1[P2], 9.00001
  +   set  N2, P1[P2]
  +   print N2
  +   print "\n"
  +
  +   set  P1["Foo\x00a"], 10.00001
  +   set  P4, P1["Foo\x00a"]
  +   print P4
  +   print "\n"
  +
  +   set  S0, "Foo\x00a"
  +   set  P1[S0], 11.00001
  +   set  P4, P1[S0]
  +   print P4
  +   print "\n"
  +
  +   set  P1[2], 12.00001
  +   set  P4, P1[2]
  +   print P4
  +   print "\n"
  +
  +   set I3, 2
  +   set  P1[I3], 13.00001
  +   set  P4, P1[I3]
  +   print P4
  +   print "\n"
  +
  +
  +   new P2, .Key
  +   set P2, "Foo\x00a"
  +   set  P1[P2], 14.00001
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +
  +   new P2, .Key
  +   set P2, 0
  +   set  P1[P2], 15.00001
  +   set  P4, P1[P2]
  +   print P4
  +   print "\n"
  +
  +
  +CODE
  
  
  

Reply via email to