[Koha-patches] [PATCH] Bug 4905 Runtime errors in about.pl
Colin Campbell
colin.campbell at ptfs-europe.com
Thu Jun 24 16:57:21 CEST 2010
Calls to VERSION were generating errors when called on a string.
Use a bit of sleight of hand to avoid this
Added a couple of tests on Installer/PerlModules
Module needs better coverage testing (esp on newer perls)
Sorted to list of modules to make koha_perl_deps.pl more
human-friendly
---
C4/Installer/PerlModules.pm | 11 ++++++-----
t/Installer_pm.t | 25 +++++++++++++++++++++++++
2 files changed, 31 insertions(+), 5 deletions(-)
create mode 100755 t/Installer_pm.t
diff --git a/C4/Installer/PerlModules.pm b/C4/Installer/PerlModules.pm
index 9419ce8..35d7ce0 100644
--- a/C4/Installer/PerlModules.pm
+++ b/C4/Installer/PerlModules.pm
@@ -80,16 +80,17 @@ sub version_info {
}
}
else {
- for (keys(%$PERL_DEPS)) {
- eval "require $_";
+ for (sort keys(%{$PERL_DEPS})) {
+ my $pkg = $_; # $_ holds the string
+ eval "require $pkg";
if ($@) {
push (@{$self->{'missing_pm'}}, {$_ => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
}
- elsif ($_->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) {
- push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $_->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
+ elsif ($pkg->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) {
+ push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
}
else {
- push (@{$self->{'current_pm'}}, {$_ => {cur_ver => $_->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
+ push (@{$self->{'current_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
}
}
return;
diff --git a/t/Installer_pm.t b/t/Installer_pm.t
new file mode 100755
index 0000000..4370174
--- /dev/null
+++ b/t/Installer_pm.t
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+#
+use strict;
+use warnings;
+
+use Test::More tests => 4;
+use Data::Dumper;
+
+BEGIN {
+ use_ok('C4::Installer::PerlModules');
+}
+
+my $obj = C4::Installer::PerlModules->new;
+
+isa_ok($obj,'C4::Installer::PerlModules');
+
+my $hash_ref = $obj->version_info(module => 'Test::More');
+
+my $control = $Test::More::VERSION;
+
+like($hash_ref->{'Test::More'}->{cur_ver}, qr/\d/, 'returns numeric version');
+
+ok($hash_ref->{'Test::More'}->{cur_ver} == $control, 'returns correct version');
+
+
--
1.7.0.1
More information about the Koha-patches
mailing list