First VersionCheck.pm prototype.

This commit is contained in:
Daniel Nichter
2012-08-08 11:36:49 -06:00
parent dbb4360aa7
commit 07237162f7
2 changed files with 337 additions and 0 deletions

106
t/lib/VersionCheck.t Normal file
View File

@@ -0,0 +1,106 @@
#!/usr/bin/perl
BEGIN {
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
};
use strict;
use warnings FATAL => 'all';
use English qw(-no_match_vars);
use Test::More;
use Data::Dumper;
use VersionCheck;
use DSNParser;
use Sandbox;
use PerconaTest;
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
my $dbh = $sb->get_dbh_for('master');
my $vc = VersionCheck->new();
sub test_v {
my (%args) = @_;
my $items = $vc->parse_server_response(
response => $args{response},
);
is_deeply(
$items,
$args{items},
"$args{name} items"
);
my $versions = $vc->get_versions(
items => $items,
dbh => $dbh,
);
is_deeply(
$versions,
$args{versions},
"$args{name} versions"
);
return;
}
test_v(
name => "Perl version",
response => "Perl;perl_variable;PERL_VERSION\n",
items => {
'Perl' => {
item => 'Perl',
type => 'perl_variable',
vars => [qw(PERL_VERSION)],
},
},
versions => {
'Perl' => "$PERL_VERSION",
},
);
test_v(
name => "perl_variable (no args)",
response => "Data::Dumper;perl_variable\n",
items => {
'Data::Dumper' => {
item => 'Data::Dumper',
type => 'perl_variable',
vars => [],
},
},
versions => {
'Data::Dumper' => $Data::Dumper::VERSION,
},
);
my (undef, $mysql_version)
= $dbh->selectrow_array("SHOW VARIABLES LIKE 'version'");
my (undef, $mysql_distro)
= $dbh->selectrow_array("SHOW VARIABLES LIKE 'version_comment'");
test_v(
name => "mysql_variable",
response => "MySQL;mysql_variable;version_comment,version\n",
items => {
'MySQL' => {
item => 'MySQL',
type => 'mysql_variable',
vars => [qw(version_comment version)],
},
},
versions => {
'MySQL' => "$mysql_distro $mysql_version",
},
);
# #############################################################################
# Done.
# #############################################################################
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
done_testing;
exit;