Author: leo Date: Tue Oct 11 05:36:13 2005 New Revision: 9446 Modified: trunk/t/pmc/object-meths.t Log: test *_keyed_int with classes derived from PMCs
Modified: trunk/t/pmc/object-meths.t ============================================================================== --- trunk/t/pmc/object-meths.t (original) +++ trunk/t/pmc/object-meths.t Tue Oct 11 05:36:13 2005 @@ -16,7 +16,7 @@ Tests PMC object methods. =cut -use Parrot::Test tests => 32; +use Parrot::Test tests => 34; use Test::More; output_like(<<'CODE', <<'OUTPUT', "callmethod - unknown method"); @@ -1039,3 +1039,69 @@ CODE ikey skey OUTPUT + +pir_output_is(<<'CODE', <<'OUTPUT', "delegate keyed_int PMC derived"); +.sub main :main + .local pmc cl, o + cl = subclass "ResizablePMCArray", "MyClass" + o = new "MyClass" + $I0 = 5 + o[$I0] = 42 + $I1 = o[$I0] + print $I1 + print "\n" +.end + +.namespace ["MyClass"] + +.sub __get_integer_keyed_int :method + .param int key + print "ikey\n" + .local pmc ar + ar = getattribute self, "__value" + $I0 = ar[key] + .return ($I0) +.end + +.sub __set_integer_keyed :method + .param pmc key + .param int val + print "pkey\n" + .local pmc ar + ar = getattribute self, "__value" + ar[key] = val +.end + +CODE +pkey +ikey +42 +OUTPUT + +pir_output_is(<<'CODE', <<'OUTPUT', "delegate keyed_int PMC derived - inherit"); +.sub main :main + .local pmc cl, o + cl = subclass "ResizablePMCArray", "MyClass" + o = new "MyClass" + $I0 = 5 + o[$I0] = 42 + $I1 = o[$I0] + print $I1 + print "\n" +.end + +.namespace ["MyClass"] + +.sub __get_integer_keyed_int :method + .param int key + print "ikey\n" + .local pmc ar + ar = getattribute self, "__value" + $I0 = ar[key] + .return ($I0) +.end + +CODE +ikey +42 +OUTPUT
