Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 878404a122
Fetching contributors…

Cannot retrieve contributors at this time

132 lines (111 sloc) 5.186 kB
TASKS for the Perl 6 Test Suite
Add any requested tests or other updates to this file. Please organize them
by synopsis (when applicable) or put them in the OVERALL section at the top
if they apply to the test suite in general.
Please also read t/deprecated-syntax.pod for common mistakes in the test
suite, and clear them when you update tests.
When you are adding entries here, please put something like this in the
commit message:
[t/TASKS]: Added more tasks for S02.
This way, people working on the test suite can easily spot these commits
in #perl6.
This file had entries in the past (r16405). Since this file wasn't touched
in over 4000 commits, I (Auzon) cleared them out.
OVERALL
* Add smartlinks to tests without them
* Continue moving tests from t/ to t/spec/
* Clean up old POD (only present in some testing modules)
* Review XXX entries for test corrections
* rewrite tests with multiple lexical subs of the same name ("my sub foo") to
use different names and no "my" (except where testing lexical subs, of
course)
S02
* tests for KeySet, KeyBag. See spec/S02-builtin_data_types/keyhash.t for
inspiration
* tests for Implementation types (the Perl 6 equiv. of tie()), probably need
more specs as well
* some tests in S02 assume that a floating point literal like 1.2 is of typ
Rat (rational), but it really is of type Num. Same for things like (1/2) (to
produce a Rat you need (1 div )). This needs cleanup. Just grep for Rat,
review the tests and clean them up where appropriate
S03
* tests for cmp() and eqv() methods of objects
* test that '@array, *' repeats the final element infinitely
* tests for other range edgecases
* tests for feeds using IO objects
* Junction tests need fixing. See below.
* more bitwise tests, for :signed and :unsigned, and uncomment the tests in
t/spec/S03-operators/bit.t
* The section "Reduction Operators" mentions the syntax 'proto [foo] ...' for
defining both reduction and infix operators. Needs tests.
S04
* test warnings
* more tests for excepts and CATCH blocks
* tests for control exception handlers
S05
* mm//, ss/// variants
* switch some "ok" tests to "is" tests to check the exact match
* modifier tests. It's easy to if these are missing
* tests for the "special named assertions"
* more of everything.
S06
* Unpacking array/hash parameters, see
http://perlcabal.org/syn/S06.html#Unpacking_array_parameters
S09
* more tests for multidimensional arrays (also .shape, see S29)
* tests for user-defined array indexing
* tests for PDL
S12
* tests for multi *method* dispatch (either write new ones, or find and review
some under t/oo/)
* tests for $object.WALK
* tests for $object.*@candidates
* tests for "but" (such as 0 but Bool::True; should go into S12-enums/)
* tests for metamethods (under "Introspection" in S12)
* tests for autovivification
* more tests for inheritance. Auzon noticed that there were no multiple inheritance tests, so other important things are bound to be missing.
S16
* tests for glob()
S29
* tests for array: shape and end
* tests for complex: polar
* tests for pack and unpack
* tests to ensure that rand has a bit of entropy
* test for $number.rand (method form)
* most (all?) builtins can also be used with named arguments instead of
positional arguments. For example
our Str multi method capitalize ( Str $string: ) is export
means that you can it like this:
my $x = 'abc def'
$x.capitalize
capitalize($x) # because of 'is export'
capitalize(:string($x)) # because of 'is export' and $string
This last form, with named arguments, is nearly missing from the test suite
so far, and needs to be added.
IO
* more tests for say() and print(). For example elf prints array references
as ARRAY(0x8832e28). This might be a bit tricky because we either have to
capture stdout, or open a pipe to a second script.
SINGLE TESTS
* spec/S06-advanced_subroutine_features/wrapping.t should be changed to
consitently use lives_ok
* blocks/wrap.t should be merged into
spec/S06-advanced_subroutine_features/wrapping.t
* spec/S04-closure-traits/pre-post.t has an up-to-date TODO list that needs
implementing
* syntax/interpolation/strings.t should be merged into
spec/S02-literals/quoting.t (and perhaps other files in that directory)
* merge spec/S06-advanced_subroutine_features/{wrap,wrapping}.t into one file
* merge spec/S06-advanced_subroutine_features/{return,return2}.t
Junction tests
Quite some tests in t/junction relay on $junction.values to return the values
in a particular order. That's bad, because it doesn't seem to be specced (and
with good reason IMHO).
For example t/junction/associative.t uses $junction.values to to compare
junctions. An intermediate workaround is to use $junction.values.sort, but
what we *really* should have is a sub that tests for junction identity.
That could be an intersting piece of code to write. --moritz
However, based on discussions at the OSCON 2008 hackathon, there's reason
to believe that .values won't be a method on Junction (or rather, that
.values autothreads overs the members of the Junction set like any other
method). --pmichaud
Jump to Line
Something went wrong with that request. Please try again.