Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 122 lines (102 sloc) 4.621 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
TODO items 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.

OVERALL
* Add smartlinks to tests without them
* Continue moving tests from t/ to t/spec/ if you find some of which you are
  convinced that they still conform to the current spec (or of course if you
  updated them). For notes on what's involved in this,
  see http://perlmonks.org/?node_id=773415
* Clean up old POD (only present in some testing modules)
* Review XXX entries for test corrections

UPDATING TASKS
sometimes the spec changes, and the test suite must be updated accordingly.
Here's a list of what needs to be done, along with the revisions that changed
the spec (newest first)

* (r28882) upper precision limit for Rat (not sure if it needs explicit tests)
* (r28502) Stringy, Numeric etc. roles; PairVal and PairValSet (now Enum and EnumMap)
* (r28344, r28348, r28351) Range object changes + magic series operator
* (r28284) Introspecting subs and multis
* (r28219) [S06] supply missing list splitting primitive as a form of binding
* (r28208, r28210, r28213, r28215) Temporal updates
* (r28199) Execution time of package blocks and module mainline code
* (r28196, r28197) Stubbed classes
* (r28188) [S04] clarify semantics of break for masak++
* (r27503) filetest methods
* (r27106,r27365,r27366) utf8/utf16 etc buffer types (t/spec/S32-str/encode.t)
* (r27324,r27331) 'use' semantics
* (r27313) dispatch (named args, narrowness)
* (r27312) ambiguous authority and 'use'
* (r27066) rangechars are not limited to \w anymore
* (r27045) multi method scoping
* (r28150, r28151) ::=, implicit 'is context' on $*foo variables
* (r26968) Now we know how $! works.
* (r26401) Pi/Pf characters are allowed as brackets
* (r25830) named parameters to open()
* (r25767) updates to builtin regexes

S02
* tests for Implementation types (the Perl 6 equiv. of tie()), probably need
  more specs as well

S03
* tests for cmp() and eqv() methods of objects
* tests for feeds using IO objects
* more bitwise tests, for :signed and :unsigned, and uncomment the tests in
  t/spec/S03-operators/bit.t
* the tests in S03-junctions should somehow specially arrange for
  access to the private method !eigenstates

S04
* test warn()
* more tests for exceptions and CATCH blocks
* tests for control exception handlers

S05
* more tets for mm// (S05-modifier/sigspace.t)
* more tests for ss/// (S05-substitution/subst.t)
* combinations of s:/// with various modifiers
* switch some "ok" tests to "is" tests to check the exact match
* modifier tests. It's easy to grep to see which are present
* tests for the "special named assertions"
* more of everything.

S06
* test colonpair shortcuts involving twigils: :$!a, :$.a, :$^a

S09
* more tests for multidimensional arrays (also .shape, see S29)
* tests for user-defined array indexing
* tests for PDL

S11
* more tests for need/defines (S11-modules/{need,defines}.t)

S12
* more tests for "but" (such as 0 but Bool::True; should go into S12-enums/)
* tests for metamethods (under "Introspection" in S12; so far only one in
  S12-attributes/class.t)
* 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()
* tests for lines($filehandle) and lines($filename)

S29
* tests for array: shape
* tests for pack and unpack
* Confirm the validity of test to ensure that rand has a bit of entropy
  (in S32-num/rand.t)


IO
* Filetest methods from S32-setting-library/IO need tests (see RT #66398):
  :o :R :W :X :O :l :p :S :b :c :t :u :g :k :T :B

SINGLE TESTS
* t/spec/S04-closure-traits/pre-post.t has an up-to-date TODO list that needs
  implementing
* Tests for old_regex_mods and C++ constructor detection errors as per STD

Spec clarification
   These tests contain things that aren't specced, and for which we should
   get clarification - either spec it, or delete the parts of the tests that
   rely on it.
* t/oo/syntax-but.t contains '$value but { closure }', which is mentioned once
  in S02 in a different context, but not anywhere else it seems. Is that
  intentional?
Something went wrong with that request. Please try again.