does not seem to like wrapping _code
[parrot.git] / t / dynpmc / subproxy.t
blobc29b2d413cd2ded2c2529d5e8c8af08419b1f556
1 #!./parrot
2 # Copyright (C) 2005-2010, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/dynpmc/subproxy.t - test if Sub is overridable via hll_map()
9 =head1 SYNOPSIS
11         % prove t/dynpmc/subproxy.t
13 =head1 DESCRIPTION
15 Tests the hll mapping of Sub PMCs. The test is using SubProxy, which
16 happens to be a Sub.
18 =cut
20 .sub main :main
21     .include 'test_more.pir'
22     plan(3)
24     test_loadlib()
25     test_type_of_hll_mapped_sub()
26 .end
28 .sub test_loadlib
29     .local pmc lib
30     lib = loadlib "subproxy"
31     unless lib goto not_loaded
32     ok(1, 'loadlib')
33     .return()
34   not_loaded:
35     ok(1, 'loadlib')
36 .end
38 .sub test_type_of_hll_mapped_sub
39     .local pmc b, f
40     b = get_global 'bar'
41     $S0 = typeof b
42     is($S0, 'Sub', "test type of hll_map'ped .Sub")
43     f = get_root_global ['some'], 'foo'
44     $S0 = typeof f
45     is($S0, 'SubProxy', "test type of hll_map'ped .Sub")
46 .end
48 .sub bar
49     noop
50 .end
52 .HLL "Some"
53 .loadlib "subproxy"
54 .sub load :anon :immediate
55     .local pmc interp
56     .local pmc sub,subproxy
57     interp = getinterp
58     sub = get_class 'Sub'
59     subproxy = get_class 'SubProxy'
60     interp.'hll_map'(sub,subproxy)
61 .end
63 .sub foo
64     noop
65 .end
67 # Local Variables:
68 #   mode: pir
69 #   fill-column: 100
70 # End:
71 # vim: expandtab shiftwidth=4 ft=pir: