View | Details | Raw Unified | Return to bug 32687
Collapse All | Expand All

(-)a/C4/Context.pm (-2 / +7 lines)
Lines 820-839 Gets various version info, for core Koha packages, Currently called from carp ha Link Here
820
820
821
# A little example sub to show more debugging info for CGI::Carp
821
# A little example sub to show more debugging info for CGI::Carp
822
sub get_versions {
822
sub get_versions {
823
    my %versions;
823
    my ( %versions, $mysqlVersion );
824
    $versions{kohaVersion}  = Koha::version();
824
    $versions{kohaVersion}  = Koha::version();
825
    $versions{kohaDbVersion} = C4::Context->preference('version');
825
    $versions{kohaDbVersion} = C4::Context->preference('version');
826
    $versions{osVersion} = join(" ", POSIX::uname());
826
    $versions{osVersion} = join(" ", POSIX::uname());
827
    $versions{perlVersion} = $];
827
    $versions{perlVersion} = $];
828
829
    my $dbh = C4::Context->dbh;
830
    $mysqlVersion = $dbh->get_info(18) if $dbh; # SQL_DBMS_VER
831
828
    {
832
    {
829
        no warnings qw(exec); # suppress warnings if unable to find a program in $PATH
833
        no warnings qw(exec); # suppress warnings if unable to find a program in $PATH
830
        $versions{mysqlVersion}  = `mysql -V`;
834
        $mysqlVersion          ||= `mysql -V`; # fallback to sql client version?
831
        $versions{apacheVersion} = (`apache2ctl -v`)[0];
835
        $versions{apacheVersion} = (`apache2ctl -v`)[0];
832
        $versions{apacheVersion} = `httpd -v`             unless  $versions{apacheVersion} ;
836
        $versions{apacheVersion} = `httpd -v`             unless  $versions{apacheVersion} ;
833
        $versions{apacheVersion} = `httpd2 -v`            unless  $versions{apacheVersion} ;
837
        $versions{apacheVersion} = `httpd2 -v`            unless  $versions{apacheVersion} ;
834
        $versions{apacheVersion} = `apache2 -v`           unless  $versions{apacheVersion} ;
838
        $versions{apacheVersion} = `apache2 -v`           unless  $versions{apacheVersion} ;
835
        $versions{apacheVersion} = `/usr/sbin/apache2 -v` unless  $versions{apacheVersion} ;
839
        $versions{apacheVersion} = `/usr/sbin/apache2 -v` unless  $versions{apacheVersion} ;
836
    }
840
    }
841
    $versions{mysqlVersion} = $mysqlVersion;
837
    return %versions;
842
    return %versions;
838
}
843
}
839
844
(-)a/t/db_dependent/Context.t (-2 / +23 lines)
Lines 16-22 Link Here
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
use Test::More tests => 4;
19
use Test::More tests => 5;
20
use Test::MockModule;
20
21
21
use C4::Context;
22
use C4::Context;
22
use Koha::Database;
23
use Koha::Database;
Lines 147-149 subtest 'Zconn' => sub { Link Here
147
    $oConnection = C4::Context->Zconn('biblioserver', 1);
148
    $oConnection = C4::Context->Zconn('biblioserver', 1);
148
    is($oConnection->option('async'), 1, "ZOOM connection is asynchronous");
149
    is($oConnection->option('async'), 1, "ZOOM connection is asynchronous");
149
};
150
};
150
- 
151
152
subtest 'get_versions' => sub {
153
    plan tests => 2;
154
155
    my $dbh = C4::Context->dbh;
156
    my $mod = Test::MockModule->new( 'C4::Context' );
157
    my $no_dbh;
158
    $mod->mock( 'dbh', sub { return $no_dbh ? undef : $dbh; } );
159
160
    my $client = `mysql -V`;
161
    my $server = ( C4::Context->dbh->selectrow_array("SHOW VARIABLES LIKE 'version'") )[1];
162
    my $server_version;
163
    if( $server =~ /(\d+(\.\d+)+)/ ) {
164
        $server_version = $1;
165
        $server_version =~ s/\./\\./g;
166
    }
167
    my $v;
168
    like( $v = { C4::Context::get_versions }->{mysqlVersion}, qr/$server_version/, "Server version $v found" );
169
    $no_dbh = 1;
170
    is( $v = { C4::Context::get_versions }->{mysqlVersion}, $client, "Client version $v found" );
171
};

Return to bug 32687