[t][TT #1122] Convert t/op/literal.t to PIR and keep old PASM tests in t/op/literal...
[parrot.git] / t / TESTS_STATUS.pod
blobdb0845b63b03e86557b2df5492cd6e55ba0e9171
1 # $Id$
3 =head1 Parrot Testing Status
5 The primary goal of the Parrot testing effort is to provide complete coverage
6 of the critical Parrot core subsystems on all targeted platforms. Secondary
7 goals include testing of non-critical core subsystems, and non-core code.
8 This document tracks the status of our effort.
10 Until we have an automated way of quantitatively tracking test coverage,
11 coverage will be tracked quantitatively, using the scale described below:
13 =over 4
15 =item Poor
17 Very little, or no coverage of a component. This status is completely
18 unacceptable and should be remedied immediately.
20 =item Fair
22 Some coverage of basic component operation. Missing some subtests of basic
23 operation, failure cases, and invalid input. Component functionality may only
24 be tested on a subset of platforms that provide that functionality.
26 =item Good
28 Full or nearly-full coverage of basic component operation, failure cases,
29 and invalid input. Tests are run on all platforms which allow component
30 operation. Hard-to-test code is not yet well-covered. Some missing
31 functionality is partially tested with failing B<TODO> and B<SKIP> tests.
33 =item Excellent
35 Full coverage of basic component operation, failure cases, and invalid input
36 on all platforms. Hard-to-test code is well-covered. Missing component
37 functionality, including basic operation, failure cases, and invalid input
38 is tested with failing B<TODO> and B<SKIP> tests.
40 =back
42 =head2 Parrot Core Subsystems
44 Below is a breakdown of the Parrot core subsystems, and a qualitative measure
45 of testing status.
47 =head3 Parser
49 This module tokenizes the input.
51 =over 4
53 =item Status
55 B<Fair>. There are tests for basic operation, however these tests are spread
56 throughout the test suite, and are not comprehensive. We can assume basic
57 operation is well-tested, otherwise the compiler, optimizer, and interpreter
58 probably wouldn't work very well.
59 Tests under B<t/compilers/imcc/syn/>, and others.
61 =back
63 =head3 Compilers: IMCC, PGE, TGE
65 =over 4
67 =item Status
69 B<Good>.
71 =back
73 =head3 Optimizer
75 This rearranges B<PASM> code to make it run faster.
77 =over 4
79 =item Status
81 B<Good>. Most optimizations are well-tested.
82 Tests under B<t/compilers/imcc/imcpasm/>.
84 =back
86 =head3 Interpreter
88 This is the core of Parrot. It comprises the various runcores, input/output,
89 threading, events, exceptions, objects, bytecode loader, etc. Test coverage
90 of the Parrot Interpreter is critical.
92 =over 4
94 =item Status
96 B<Fair>. A breakdown of Interpreter subsystems below lists individual status.
98 =over 4
100 =item PMCs
102 B<Fair>. Each PMC file has a corresponding test file. Some PMCs are heavily
103 undertested. Tests under B<t/pmc/>.
105 =item Operators
107 B<Good>. Most operators are well-tested. Tests under B<t/op/>.
109 =item IO
111 B<Fair>. Tests exist, but do not run on all platforms, and do not test
112 some important cases. Tests in B<t/pmc/io.t> and B<t/src/io.t>.
114 =item Dynamic PMCs
116 B<Poor>. Some dynamic PMCs do not have test files. Coverage in existing
117 test files is far from complete. Tests under B<t/dynpmc/>.
119 =item Dynamic ops
121 B<Poor>. Only a few tests exist, and coverage of important test cases is
122 weak. Tests under B<t/dynops/>.
124 =item Packfiles
126 B<Poor>. For more exotic platforms tests under B<t/native_pbc> are
127 rarely updated.
129 =back
131 =back
133 =head3 Runtime Libraries and Includes
135 =over 4
137 =item Status
139 B<Poor>. Some runtime libraries are tested, while others are not. No tests
140 exist for include files. Tests under B<t/library/>.
142 =back
144 =head3 Configure Libraries
146 =over 4
148 =item Status
150 B<Good>. Tests exist, and the coverage is decent and improving.  Tests under
151 B<t/configure/>.
153 =back
155 =head3 Test Libraries
157 =over 4
159 =item Status
161 B<Poor>. Few tests exist, and coverage is poor. However, the test suite
162 I<seems> to run fine, giving a false sense of security.
164 =back
166 =head3 Documentation
168 =over 4
170 =item Status
172 B<Fair>. Opcode documentation is well-tested, and Pod files are checked
173 for standards-conformance, but many documentation tests are missing.
174 Tests under B<t/doc>.
176 =back
178 =head3 Coding standard
180 =over 4
182 =item Status
184 B<Good>. Tests under F<t/codingstd/*.t>.
186 =back
188 =head3 Examples and Benchmarks
190 =over 4
192 =item Status
194 B<Fair>. Tests exist, and cover basic functionality of nearly all examples
195 and benchmarks. Extensive testing of failures is not a priority. Tests under
196 B<t/examples/> and B<t/benchmark/>.
198 =back
200 =head3 Tools
202 =over 4
204 =item Status
206 B<Poor>. Few tests exist, and coverage is sparse. Tests under B<t/tools/>.
208 =back
210 =cut