GSoC/GCI Archive
Google Code-in 2010 Parrot Foundation and The Perl Foundation

add TODO to PIR Test::More

completed by: Fernando Brito

mentors: cotto

Task Description

Your job is to add TODO to PIR Test::More.  When you're done, all functions that indicate success should take an optional named argument named "todo" with an optional string value.  When this value is present, the function will behave the same as if todo() were called.  This will make it easier to TODO tests that are temporarily expected to fail.  When you're done, the following should have the same output: 

ok(foo, "foo works", :todo("doesn't work yet"))

todo(foo, "foo works", "doesn't work yet")

Do this for all Test::More functions that indicate success or failure.  These functions are ok, nok, is, is_deeply, like, isa_ok, isnt, throws_like, lives_ok and dies_ok and can be found in runtime/parrot/library/Test.  You'll have to modify all these functions, but most should require only a few changes.  You'll also need to add tests for any modified functions to the relevant files in t/library .

Steps To Complete This Task

PIR's tests are a bit clunky. Your task is to make it possible

  1. Create a fork of parrot.git on
  2. Perform all the necessary code and/or documentation changes
  3. Build parrot and run its test suite (make fulltest) to verify that things still work
  4. You can also submit a smoke report with "make smoke", but that is optional.
  5. Create a Github pull request (button on the upper right of your fork) to have your changes incorporated into the master repository


  1. Knowledge of PIR.

Additional Links