--- Gabor Szabo <[EMAIL PROTECTED]> wrote:
> The issue was raised on the Oslo Hackathon that it would be cool
> if we could keep the tests around so that they can be executed
> later again making sure that even after one has upgraded other
> parts of his system the previously installed modules still work as
> expected.
I've been thinking about this a lot and want a solution. The main
issue with "keeping the tests" is that you probably already have a lot
of modules installed and it's not always easy to tell which
distributions you have to get the tests for.
brian d foy tells me that in about a month he hopes to have software
which, given a particular file, will tell you which distribution (if
any) it's from. With that, what we can do is this:
my %files_in;
my @unknown_distributions;
for my $file (pm_files_in_inc()) {
if ( my $distribution = distribution_for($file) ) {
$files_in{$distribution} ||= [];
push $files_in{$distribution} => $file;
}
else {
push @unknown_distributions => $file;
}
}
for my $dist_name (keys $files_in) {
# with local caching, obviously
my $distribution = get_from_cpan_or_backpan($dist_name);
# should extract into dirs named after the dist
extract_tests($distribution, 'installation_tests/');
}
There are *all* sorts of caveats with this, but basically:
1. You can produce a report of packages from unknown distributions.
2. Run tests against your current setup.
3. CPAN hooks to see how the tests will pass with a new module.
There has never been a serious way to test your Perl installation.
Some tests won't be able to pass because they require environment
variables, access to the Web, ponies, etc. However, it could be a good
starting solution.
Cheers,
Ovid
--
Buy the book - http://www.oreilly.com/catalog/perlhks/
Perl and CGI - http://users.easystreet.com/ovid/cgi_course/
Personal blog - http://publius-ovidius.livejournal.com/
Tech blog - http://use.perl.org/~Ovid/journal/