[svn:parrot] r38013 - branches/packfile_revamp/t/pmc
bacek at svn.parrot.org
bacek at svn.parrot.org
Fri Apr 10 05:31:27 UTC 2009
Author: bacek
Date: Fri Apr 10 05:31:26 2009
New Revision: 38013
URL: https://trac.parrot.org/parrot/changeset/38013
Log:
Update packfileconstanttable.t to properly search for ConstantTable.
Modified:
branches/packfile_revamp/t/pmc/packfileconstanttable.t
Modified: branches/packfile_revamp/t/pmc/packfileconstanttable.t
==============================================================================
--- branches/packfile_revamp/t/pmc/packfileconstanttable.t Fri Apr 10 05:31:07 2009 (r38012)
+++ branches/packfile_revamp/t/pmc/packfileconstanttable.t Fri Apr 10 05:31:26 2009 (r38013)
@@ -36,25 +36,20 @@
# sanity check we have a PackfileConstantTable
.sub 'test_sanity'
- .local pmc pf, pfdir, pftable
+ .local pmc pbc, pftable
.local string name
- pf = _pbc()
- pfdir = pf.'get_directory'()
- pftable = pfdir[2]
- name = typeof pftable
- $I0 = cmp name, "PackfileConstantTable"
- $I0 = not $I0
- ok($I0, "PackfileConstantTable sanity check")
+ pbc = _pbc()
+ pftable = _get_consttable(pbc)
+ isa_ok(pftable, "PackfileConstantTable")
.end
# PackfileConstantTable.elements
.sub 'test_elements'
- .local pmc pf, pfdir, pftable
+ .local pmc pf, pftable
.local int size
pf = _pbc()
- pfdir = pf.'get_directory'()
- pftable = pfdir[2]
+ pftable = _get_consttable(pf)
size = elements pftable
ok(size, "PackfileConstantTable.elements returns non-zero")
.end
@@ -62,11 +57,10 @@
# PackfileConstantTable.get_type and PackfileConstantTable.get_*_keyed_int
.sub 'test_get'
- .local pmc pf, pfdir, pftable
+ .local pmc pf, pftable
.local int size, this, type
pf = _pbc()
- pfdir = pf.'get_directory'()
- pftable = pfdir[2]
+ pftable = _get_consttable(pf)
size = elements pftable
this = 0
loop:
@@ -169,6 +163,23 @@
.return(pf)
.end
+.sub '_get_consttable'
+ .param pmc pf
+ .local pmc dir, it
+ dir = pf.'get_directory'()
+ it = iter dir
+ loop:
+ unless it goto done
+ $S0 = shift it
+ $P0 = dir[$S0]
+ $I0 = isa $P0, 'PackfileConstantTable'
+ unless $I0 goto loop
+ .return ($P0)
+ done:
+ die "Can't find ConstantTable in Packfile!"
+ .return ()
+.end
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
More information about the parrot-commits
mailing list