fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / pmc / lexpad.t
blob76ab09957d3c065099afd538f127903391fda539
1 #!./parrot
2 # Copyright (C) 2006-2010, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/pmc/lexpad.t - test LexPad PMC
10 =head1 SYNOPSIS
12     % prove t/pmc/lexpad.t
14 =head1 DESCRIPTION
16 Tests the LexPad PMC.
18 =cut
20 .sub main :main
21     .include 'test_more.pir'
22     plan(8)
24     new_test()
25     test_keyed()
26     test_iter()
27 .end
29 .sub new_test
30     push_eh eh
31     $P0 = new ['LexPad']
32     pop_eh
33     ok(0, "shouldn't be able to create a LexPad without an initializer")
34     goto end
35 eh:
36     ok(1, "can't create a LexPad without an initializer")
37 end:
38 .end
40 .sub test_keyed
41     .local pmc p1
42     .lex 'p1', p1
44     $P0 = getinterp
45     $P0 = $P0['lexpad']
46     $I0 = elements $P0
47     is($I0, 1, "get LexPad elements")
49     $I0 = exists $P0['p1']
50     is($I0, 1, ".lex exists_keyed true")
52     $I0 = exists $P0['nosuchlex']
53     is($I0, 0, ".lex exists_keyed false")
55     $P1 = new 'Integer'
56     push_eh eh
57     $P0['nosuchlex'] = $P1
58     ok(0, "setting a non existent .lex should throw")
59     goto end
60 eh:
61     pop_eh
62     ok(1, "setting a non existent .lex throws")
63 end:
64 .end
66 .sub 'test_iter'
68     .local pmc str1,str2,str3
69     .lex 'a', str1
70     .lex 'b', str2
71     .lex 'c', str3
73     str1 = box 'pants'
74     str2 = box 'pants'
75     str3 = box 'pants'
77     .local pmc interp
78     interp = getinterp
80     .local pmc dlp
81     dlp    = interp['lexpad']
83     .local pmc iterator
84     iterator = iter dlp
85 iter_loop:
86     unless iterator goto iter_done
87     .local pmc key
88     key = shift iterator
89     .local pmc value
90     value = dlp[key]
91     is(value, 'pants', "Got value from iterator")
92     goto iter_loop
93 iter_done:
94 .end
96 # Local Variables:
97 #   mode: pir
98 #   fill-column: 100
99 # End:
100 # vim: expandtab shiftwidth=4 ft=pir: