cvsuser 05/03/31 07:20:07
Modified: runtime/parrot/library/Data/Dumper Default.imc
t/library dumper.t
Log:
- fixed dumping of some array PMCs
- support for more PMC types
- more tests
Revision Changes Path
1.8 +143 -17 parrot/runtime/parrot/library/Data/Dumper/Default.imc
Index: Default.imc
===================================================================
RCS file: /cvs/public/parrot/runtime/parrot/library/Data/Dumper/Default.imc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Default.imc 14 Jan 2005 03:01:26 -0000 1.7
+++ Default.imc 31 Mar 2005 15:20:06 -0000 1.8
@@ -212,9 +212,130 @@
=cut
-.sub pmcPMCArray
- S0 = "pmcPerlArray"
- callmethod
+.sub pmcPMCArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcResizablePMCArray"( name, array )
+
+Dumps an resizable (PMC) Array.
+
+=cut
+
+.sub pmcResizablePMCArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcResizableStringArray"( name, array )
+
+Dumps an resizable (string) Array.
+
+=cut
+
+.sub pmcResizableStringArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcResizableIntegerArray"( name, array )
+
+Dumps an resizable (Integer) Array.
+
+=cut
+
+.sub pmcResizableIntegerArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcResizableFloatArray"( name, array )
+
+Dumps an resizable (Float) Array.
+
+=cut
+
+.sub pmcResizableFloatArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcFixedPMCArray"( name, array )
+
+Dumps an fixed (PMC) Array.
+
+=cut
+
+.sub pmcFixedPMCArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcFixedStringArray"( name, array )
+
+Dumps an fixed (string) Array.
+
+=cut
+
+.sub pmcFixedStringArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcFixedIntegerArray"( name, array )
+
+Dumps an fixed (Integer) Array.
+
+=cut
+
+.sub pmcFixedIntegerArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcFixedFloatArray"( name, array )
+
+Dumps an fixed (Float) Array.
+
+=cut
+
+.sub pmcFixedFloatArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcPMCArray"( name, array )
+
+Dumps an (PMC) Array.
+
+=cut
+
+.sub pmcPMCArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
+.end
+
+=item style."pmcStringArray"( name, array )
+
+Dumps an (string) Array.
+
+=cut
+
+.sub pmcStringArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
.end
=item style."pmcIntList"( name, array )
@@ -282,17 +403,6 @@
.return ( 1 )
.end
-=item style."pmcStringArray"( name, array )
-
-Dumps an (string) Array.
-
-=cut
-
-.sub pmcStringArray
- S0 = "pmcPerlArray"
- callmethod
-.end
-
=item style."pmcPerlArray"( name, array )
Dumps an (Perl) Array.
@@ -541,9 +651,10 @@
=cut
-.sub pmcArray
- S0 = "pmcPerlArray"
- callmethod
+.sub pmcArray method
+ .param string name
+ .param pmc array
+ self."pmcPerlArray"( name, array )
.end
=item style."pmcInteger"( name, val )
@@ -561,6 +672,21 @@
.return ( 1 )
.end
+=item style."pmcFloat"( name, val )
+
+Dumps an Float PMC.
+
+=cut
+
+.sub pmcFloat method
+ .param string name
+ .param pmc val
+
+ print val
+
+ .return ( 1 )
+.end
+
=back
=head1 AUTHOR
1.14 +217 -4 parrot/t/library/dumper.t
Index: dumper.t
===================================================================
RCS file: /cvs/public/parrot/t/library/dumper.t,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- dumper.t 19 Mar 2005 16:20:12 -0000 1.13
+++ dumper.t 31 Mar 2005 15:20:07 -0000 1.14
@@ -1,7 +1,7 @@
#! perl -w
# Copyright: 2001-2004 The Perl Foundation. All Rights Reserved.
-# $Id: dumper.t,v 1.13 2005/03/19 16:20:12 leo Exp $
+# $Id: dumper.t,v 1.14 2005/03/31 15:20:07 jrieks Exp $
=head1 NAME
@@ -19,7 +19,7 @@
use strict;
-use Parrot::Test tests => 16;
+use Parrot::Test tests => 27;
# no. 1
pir_output_is(<<'CODE', <<'OUT', "dumping array of sorted numbers");
@@ -448,7 +448,7 @@
OUT
# no. 10
-pir_output_is(<<'CODE', <<'OUT', "self-referential properties");
+pir_output_is(<<'CODE', <<'OUT', "self-referential properties (1)");
.sub _main
.local pmc hash
@@ -472,7 +472,7 @@
OUT
# no. 11
-pir_output_is(<<'CODE', <<'OUT', "self-referential properties");
+pir_output_is(<<'CODE', <<'OUT', "self-referential properties (2)");
.sub _main
.local pmc array
@@ -767,3 +767,216 @@
CODE
"Int:" => 12345
OUTPUT
+
+# no. 17
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping Float PMC");
+
+.sub _main
+ .local pmc float1
+
+ new float1, .Float
+ float1 = 12345.678
+ _dumper( "Float:", float1 )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"Float:" => 12345.7
+OUTPUT
+
+# no. 18
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping ResizablePMCArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .ResizablePMCArray
+ push array, 12345
+ push array, "hello"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => ResizablePMCArray (size:2) [
+ 12345,
+ "hello"
+]
+OUTPUT
+
+# no. 19
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping ResizableStringArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .ResizableStringArray
+ push array, "hello"
+ push array, "world"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => ResizableStringArray (size:2) [
+ "hello",
+ "world"
+]
+OUTPUT
+
+# no. 20
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping ResizableIntegerArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .ResizableIntegerArray
+ push array, 12345
+ push array, 67890
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => ResizableIntegerArray (size:2) [
+ 12345,
+ 67890
+]
+OUTPUT
+
+# no. 21
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping ResizableFloatArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .ResizableFloatArray
+ push array, 123.45
+ push array, 67.89
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => ResizableFloatArray (size:2) [
+ 123.45,
+ 67.89
+]
+OUTPUT
+
+# no. 22
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping FixedPMCArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .FixedPMCArray
+ array = 2
+ array[0] = 12345
+ array[1] = "hello"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => FixedPMCArray (size:2) [
+ 12345,
+ "hello"
+]
+OUTPUT
+
+# no. 23
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping FixedStringArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .FixedStringArray
+ array = 2
+ array[0] = "hello"
+ array[1] = "world"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => FixedStringArray (size:2) [
+ "hello",
+ "world"
+]
+OUTPUT
+
+# no. 24
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping FixedIntegerArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .FixedIntegerArray
+ array = 2
+ array[0] = 12345
+ array[1] = 67890
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => FixedIntegerArray (size:2) [
+ 12345,
+ 67890
+]
+OUTPUT
+
+# no. 25
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping FixedFloatArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .FixedFloatArray
+ array = 2
+ array[0] = 123.45
+ array[1] = 67.89
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => FixedFloatArray (size:2) [
+ 123.45,
+ 67.89
+]
+OUTPUT
+
+# no. 26
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping PMCArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .PMCArray
+ push array, 12345
+ push array, "hello"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => PMCArray (size:2) [
+ 12345,
+ "hello"
+]
+OUTPUT
+
+# no. 27
+pir_output_is(<<'CODE', <<'OUTPUT', "dumping StringArray PMC");
+.sub _main
+ .local pmc array
+
+ new array, .StringArray
+ push array, "hello"
+ push array, "world"
+ _dumper( "array:", array )
+ end
+.end
+.include "library/dumper.imc"
+CODE
+"array:" => StringArray (size:2) [
+ "hello",
+ "world"
+]
+OUTPUT
+
+# pir_output_is(<<'CODE', <<'OUTPUT', "dumping IntegerArray PMC");
+# pir_output_is(<<'CODE', <<'OUTPUT', "dumping FloatValArray PMC");