* t/oo/composition.t, t/oo/mro-c3.t, t/op/calling.t:
[parrot.git] / t / pmc / key.t
blob4846b2ade0280da65ea0cc0b353c20e689040d3b
1 #! perl
2 # Copyright (C) 2001-2005, The Perl Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use lib qw( . lib ../lib ../../lib );
8 use Test::More;
9 use Parrot::Test tests => 3;
11 =head1 NAME
13 t/pmc/key.t - Keys
15 =head1 SYNOPSIS
17     % prove t/pmc/key.t
19 =head1 DESCRIPTION
21 Tests the C<Key> PMC.
23 =cut
25 pasm_output_is( <<'CODE', <<'OUT', 'traverse key chain' );
26     new P0, 'Key'
27     set P0, "1"
28     new P1, 'Key'
29     set P1, "2"
30     push P0, P1
31     new P2, 'Key'
32     set P2, "3"
33     push P1, P2
35     set P4, P0
36 l1:
37     defined I0, P0
38     unless I0, e1
39     print P0
40     shift P0, P0
41     branch l1
42 e1:
43     print "\n"
45     set P0, P4
46 l2:
47     defined I0, P0
48     unless I0, e2
49     print P0
50     shift P0, P0
51     branch l2
52 e2:
53     print "\n"
54     end
55 CODE
56 123
57 123
58 OUT
60 pasm_output_is( <<'CODE', <<'OUT', 'extract int from string keys' );
61 new P0, 'ResizableStringArray'
62 push P0, "ok 1\n"
63 push P0, "ok 2\n"
64 set S0, 0
65 set P1, P0[S0]
66 print P1
67 set P1, P0["1"]
68 print P1
69 end
70 CODE
71 ok 1
72 ok 2
73 OUT
75 pasm_output_is( <<'CODE', <<'OUT', 'extract string from int keys' );
76 new P0, 'Hash'
77 set P0['1'], "ok 1\n"
78 set P0['2'], "ok 2\n"
79 set I0, 1
80 set P1, P0[I0]
81 print P1
82 set P1, P0[2]
83 print P1
84 end
85 CODE
86 ok 1
87 ok 2
88 OUT
90 # Local Variables:
91 #   mode: cperl
92 #   cperl-indent-level: 4
93 #   fill-column: 100
94 # End:
95 # vim: expandtab shiftwidth=4: