more upgrade progress
This commit is contained in:
parent
adf3dbbe04
commit
cf92cb5a4f
3 changed files with 31 additions and 24 deletions
|
|
@ -8,37 +8,43 @@ use Path::Class::Dir ();
|
||||||
use Try::Tiny;
|
use Try::Tiny;
|
||||||
use namespace::clean;
|
use namespace::clean;
|
||||||
|
|
||||||
|
my $namespace = 0;
|
||||||
|
my $namespacePrefix = __PACKAGE__ . '::__ANON__::';
|
||||||
sub _runScript {
|
sub _runScript {
|
||||||
my $file = shift;
|
my $file = shift;
|
||||||
my @res;
|
my @res;
|
||||||
my $err;
|
my $err;
|
||||||
{
|
{
|
||||||
|
local $@;
|
||||||
local *_;
|
local *_;
|
||||||
my $guard = WebGUI::Upgrade::Script->cleanup_guard;
|
my $guard = WebGUI::Upgrade::Script->cleanup_guard;
|
||||||
# place this in a specific separate package to prevent namespace
|
my $wanted = wantarray;
|
||||||
# pollution and to allow us to clean it up afterward
|
eval sprintf(<<'END_CODE', $namespacePrefix . $namespace);
|
||||||
package
|
# place this in a specific separate package to prevent namespace
|
||||||
WebGUI::Upgrade::File::pl::script;
|
# pollution and to allow us to clean it up afterward
|
||||||
# maintain context
|
package %s;
|
||||||
if (wantarray) {
|
# maintain context
|
||||||
@res = do $file;
|
if ($wanted) {
|
||||||
}
|
@res = do $file;
|
||||||
elsif (defined wantarray) {
|
}
|
||||||
$res[0] = do $file;
|
elsif (defined $wanted) {
|
||||||
}
|
$res[0] = do $file;
|
||||||
else {
|
}
|
||||||
do $file;
|
else {
|
||||||
}
|
do $file;
|
||||||
# save error as soon as possible
|
}
|
||||||
$err = $@;
|
# save error as soon as possible
|
||||||
|
$err = $@;
|
||||||
|
END_CODE
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
# delete entire namespace that script was run in
|
# delete entire namespace that script was run in
|
||||||
no strict 'refs';
|
no strict 'refs';
|
||||||
delete ${'WebGUI::Upgrade::File::pl::'}{'script::'};
|
delete ${ $namespacePrefix }{ $namespace . '::' };
|
||||||
}
|
}
|
||||||
die $@
|
$namespace++;
|
||||||
if $@;
|
die $err
|
||||||
|
if $err;
|
||||||
return (wantarray ? @res : $res[0]);
|
return (wantarray ? @res : $res[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ sub import {
|
||||||
$extra->{into_level}++;
|
$extra->{into_level}++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$caller_upgrade_file = (caller 0)[1];
|
$caller_upgrade_file = File::Spec->rel2abs( (caller 0)[1] );
|
||||||
|
|
||||||
feature->import(':5.10');
|
feature->import(':5.10');
|
||||||
strict->import;
|
strict->import;
|
||||||
|
|
@ -44,7 +44,7 @@ sub _build_exports {
|
||||||
my $dbh;
|
my $dbh;
|
||||||
my $collateral;
|
my $collateral;
|
||||||
my $versionTag;
|
my $versionTag;
|
||||||
my $upgrade_file = File::Spec->rel2abs( $caller_upgrade_file );
|
my $upgrade_file = $caller_upgrade_file;
|
||||||
|
|
||||||
my $subs;
|
my $subs;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,10 @@ capture {
|
||||||
};
|
};
|
||||||
|
|
||||||
$upgrade->called_pos_ok(1, 'getCurrentVersion');
|
$upgrade->called_pos_ok(1, 'getCurrentVersion');
|
||||||
|
$upgrade->called_pos_ok(2, 'getCodeVersion');
|
||||||
SKIP: {
|
SKIP: {
|
||||||
$upgrade->called_pos_ok(2, 'runUpgradeFile') || skip 'upgrade not run', 1;
|
$upgrade->called_pos_ok(3, 'runUpgradeFile') || skip 'upgrade not run', 1;
|
||||||
my $upgradeFile = $upgrade->call_args_pos(2, 4);
|
my $upgradeFile = $upgrade->call_args_pos(3, 4);
|
||||||
ok $upgradeFile =~ /\b00_simple\.pl$/, 'correct upgrade file run';
|
ok $upgradeFile =~ /\b00_simple\.pl$/, 'correct upgrade file run';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,7 +109,7 @@ $upgrade->testUpgrade('config.pl');
|
||||||
{
|
{
|
||||||
my $sId = $upgrade->testUpgrade('session.pl');
|
my $sId = $upgrade->testUpgrade('session.pl');
|
||||||
|
|
||||||
ok +WebGUI::Session::Id::valid({}, $sId), 'valid session id generated';
|
ok +WebGUI::Session::Id->valid($sId), 'valid session id generated';
|
||||||
my $hasSession = $dbh->selectrow_array('SELECT COUNT(*) FROM userSession WHERE sessionId = ?', {}, $sId);
|
my $hasSession = $dbh->selectrow_array('SELECT COUNT(*) FROM userSession WHERE sessionId = ?', {}, $sId);
|
||||||
ok !$hasSession, 'session properly closed';
|
ok !$hasSession, 'session properly closed';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue