With the PITA core loop working now (finally), and while I work on the next big piece of PITA, I've been pondering what other stuff I can use the existing work for.
In response to a request from Audrey to keep Perl 6 and Parrot smoking in mind, the PITA intra-image code has been setup to support quite a lot of flexibility.
The PITA::Scheme API allow you to create classes with define "testing schemes".
At their simplest, this is a Perl class which defines a simple set of system commands. The commands are executed, the stdout/stderr for the commands is captured. One captured, the method for ejecting the results out of the virtual machine is all taken care of for you.
The Perl installations inside our test images are also setup completely vanilla (for now). Although the testing harness and scheme are run with the system Perl, the actual tests are done on the specific Perl version.
In my favourite test image so far (courtesy of Pete's excellent PITA::Setup::Perl module) we have no less than every single production version of Perl from the last 5.005 version to present (and maybe one old 5.004 too).
These are all auto-discoverable by the existing PITA guest management code.
Theoretically at least, what this means is that it might be possible for us to take something of a shortcut and embed a CPAN Testers setup inside a PITA image and test modules that way (across every Perl version, resetting for each test).
Or hell, if you ever just wanted to run a one-liner...
perl -e 'print "Hello World!\n"'
... on every single production version of perl simultaneously and see the result, well I imagine I can make that happen too.
Actually, now that I think about it, PITA::Scheme::Perl5::OneLiner could be a damned nifty piece of code...
I might hack on that tomorrow on the train.