mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 19:11:46 +01:00
Merge pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
into pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
This commit is contained in:
commit
523cddeec3
2 changed files with 70 additions and 10 deletions
|
@ -19,6 +19,7 @@
|
|||
# same name.
|
||||
|
||||
use strict;
|
||||
use File::Find;
|
||||
|
||||
sub mtr_native_path($);
|
||||
sub mtr_init_args ($);
|
||||
|
@ -29,6 +30,7 @@ sub mtr_file_exists(@);
|
|||
sub mtr_exe_exists(@);
|
||||
sub mtr_exe_maybe_exists(@);
|
||||
sub mtr_copy_dir($$);
|
||||
sub mtr_rmtree($$);
|
||||
sub mtr_same_opts($$);
|
||||
sub mtr_cmp_opts($$);
|
||||
|
||||
|
@ -200,6 +202,64 @@ sub mtr_copy_dir($$) {
|
|||
}
|
||||
|
||||
|
||||
sub mtr_rmtree($) {
|
||||
my ($dir)= @_;
|
||||
my $need_file_find= 0;
|
||||
mtr_verbose("mtr_rmtree: $dir");
|
||||
|
||||
{
|
||||
# Try to use File::Path::rmtree. Recent versions
|
||||
# handles removal of directories and files that don't
|
||||
# have full permissions, while older versions
|
||||
# may have a problem with that and we use our own version
|
||||
|
||||
local $SIG{__WARN__}= sub {
|
||||
$need_file_find= 1;
|
||||
mtr_warning($_[0]);
|
||||
};
|
||||
rmtree($dir);
|
||||
}
|
||||
if ( $need_file_find ) {
|
||||
mtr_warning("rmtree($dir) failed, trying with File::Find...");
|
||||
|
||||
my $errors= 0;
|
||||
|
||||
# chmod
|
||||
find( {
|
||||
no_chdir => 1,
|
||||
wanted => sub {
|
||||
chmod(0777, $_)
|
||||
or mtr_warning("couldn't chmod(0777, $_): $!") and $errors++;
|
||||
}
|
||||
},
|
||||
$dir
|
||||
);
|
||||
|
||||
# rm
|
||||
finddepth( {
|
||||
no_chdir => 1,
|
||||
wanted => sub {
|
||||
my $file= $_;
|
||||
# Use special underscore (_) filehandle, caches stat info
|
||||
if (!-l $file and -d _ ) {
|
||||
rmdir($file) or
|
||||
mtr_warning("couldn't rmdir($file): $!") and $errors++;
|
||||
} else {
|
||||
unlink($file)
|
||||
or mtr_warning("couldn't unlink($file): $!") and $errors++;
|
||||
}
|
||||
}
|
||||
},
|
||||
$dir
|
||||
);
|
||||
|
||||
mtr_error("Failed to remove '$dir'") if $errors;
|
||||
|
||||
mtr_report("OK, that worked!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub mtr_same_opts ($$) {
|
||||
my $l1= shift;
|
||||
my $l2= shift;
|
||||
|
|
|
@ -2172,7 +2172,7 @@ sub remove_stale_vardir () {
|
|||
{
|
||||
# Remove the directory which the link points at
|
||||
mtr_verbose("Removing " . readlink($opt_vardir));
|
||||
rmtree(readlink($opt_vardir));
|
||||
mtr_rmtree(readlink($opt_vardir));
|
||||
|
||||
# Remove the "var" symlink
|
||||
mtr_verbose("unlink($opt_vardir)");
|
||||
|
@ -2200,7 +2200,7 @@ sub remove_stale_vardir () {
|
|||
foreach my $bin ( glob("$opt_vardir/*") )
|
||||
{
|
||||
mtr_verbose("Removing bin $bin");
|
||||
rmtree($bin);
|
||||
mtr_rmtree($bin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2208,7 +2208,7 @@ sub remove_stale_vardir () {
|
|||
{
|
||||
# Remove the entire "var" dir
|
||||
mtr_verbose("Removing $opt_vardir/");
|
||||
rmtree("$opt_vardir/");
|
||||
mtr_rmtree("$opt_vardir/");
|
||||
}
|
||||
|
||||
if ( $opt_mem )
|
||||
|
@ -2217,7 +2217,7 @@ sub remove_stale_vardir () {
|
|||
# remove the $opt_mem dir to assure the symlink
|
||||
# won't point at an old directory
|
||||
mtr_verbose("Removing $opt_mem");
|
||||
rmtree($opt_mem);
|
||||
mtr_rmtree($opt_mem);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2230,11 +2230,11 @@ sub remove_stale_vardir () {
|
|||
# Remove the var/ dir in mysql-test dir if any
|
||||
# this could be an old symlink that shouldn't be there
|
||||
mtr_verbose("Removing $default_vardir");
|
||||
rmtree($default_vardir);
|
||||
mtr_rmtree($default_vardir);
|
||||
|
||||
# Remove the "var" dir
|
||||
mtr_verbose("Removing $opt_vardir/");
|
||||
rmtree("$opt_vardir/");
|
||||
mtr_rmtree("$opt_vardir/");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3192,7 +3192,7 @@ sub restore_slave_databases ($) {
|
|||
{
|
||||
my $data_dir= $slave->[$idx]->{'path_myddir'};
|
||||
my $name= basename($data_dir);
|
||||
rmtree($data_dir);
|
||||
mtr_rmtree($data_dir);
|
||||
mtr_copy_dir("$path_snapshot/$name", $data_dir);
|
||||
}
|
||||
}
|
||||
|
@ -3485,7 +3485,7 @@ sub run_testcase ($) {
|
|||
sub save_installed_db () {
|
||||
|
||||
mtr_report("Saving snapshot of installed databases");
|
||||
rmtree($path_snapshot);
|
||||
mtr_rmtree($path_snapshot);
|
||||
|
||||
foreach my $data_dir (@data_dir_lst)
|
||||
{
|
||||
|
@ -3532,7 +3532,7 @@ sub restore_installed_db ($) {
|
|||
{
|
||||
my $name= basename($data_dir);
|
||||
save_files_before_restore($test_name, $data_dir);
|
||||
rmtree("$data_dir");
|
||||
mtr_rmtree("$data_dir");
|
||||
mtr_copy_dir("$path_snapshot/$name", "$data_dir");
|
||||
}
|
||||
|
||||
|
@ -3542,7 +3542,7 @@ sub restore_installed_db ($) {
|
|||
{
|
||||
foreach my $ndbd (@{$cluster->{'ndbds'}})
|
||||
{
|
||||
rmtree("$ndbd->{'path_fs'}" );
|
||||
mtr_rmtree("$ndbd->{'path_fs'}" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue