Debug output for tapir.pir
[tapir.git] / tapir.pir
blob7f7f60c4a6ae61f3223676febfc0803bbac1e29a
1 # Copyright (C) 2009, Jonathan "Duke" Leto
3 =head1 AUTHOR
5 Written and maintained by Jonathan "Duke" Leto C<< jonathan@leto.net >>.
7 =cut
9 .sub main :main
10     .local int num_tests
11     $S0 = "1..5\nFoobar!"
12     num_tests = parse_plan($S0)
13     print "Expected number of tests="
14     say num_tests
15 .end
17 .sub parse_tests
18     .param string tap
19     .local string curr_line, delim
20     .local int passed, failed, skipped, todoed
21     .local int i
22     .local int curr_test
23     .local pmc tap_lines
24     .local pmc parts
25     i = 1
27     tap_lines = new 'ResizablePMCArray'
28     parts     = new 'ResizablePMCArray'
29     delim               = "\n"
30     split tap_lines, delim, tap
32   loop:
33     curr_line = tap_lines[i]
34     unless curr_line goto done
35     delim    = "ok "
37     split parts, delim, curr_line
38     curr_test = parts[1]
39     # check curr_test for comments
40     inc i
41     goto loop
43   done:
44     .return (passed,failed,skipped,todoed)
45 .end
47 .sub parse_plan
48     .param string tap
49     .local pmc tap_lines
50     .local pmc plan_parts
51     .local int num_expected_tests
52     .local string delim
53     .local string plan
55     tap_lines = new 'ResizablePMCArray'
56     delim               = "\n"
57     split tap_lines, delim, tap
58     plan                = tap_lines[0]
59     print "plan="
60     say plan
61     unless plan goto error
62     delim               = ".."
63     plan_parts = new 'ResizablePMCArray'
64     split plan_parts, delim, plan
66     unless plan_parts goto plan_error
67     num_expected_tests  = plan_parts[1]
69     .return (num_expected_tests)
70   error:
71     die 'Invalid TAP Stream, no plan found'
72   plan_error:
73     die 'Invalid TAP Plan'
74 .end
77 # Local Variables:
78 #   mode: pir
79 #   fill-column: 100
80 # End:
81 # vim: expandtab shiftwidth=4 ft=pir: