Loading mysql-test/lib/mtr_misc.pl +60 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ # same name. use strict; use File::Find; sub mtr_full_hostname (); sub mtr_short_hostname (); Loading @@ -17,6 +18,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($$); Loading Loading @@ -202,6 +204,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; Loading mysql-test/mysql-test-run.pl +10 −10 Original line number Diff line number Diff line Loading @@ -1988,7 +1988,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)"); Loading Loading @@ -2016,7 +2016,7 @@ sub remove_stale_vardir () { foreach my $bin ( glob("$opt_vardir/*") ) { mtr_verbose("Removing bin $bin"); rmtree($bin); mtr_rmtree($bin); } } } Loading @@ -2024,7 +2024,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 ) Loading @@ -2033,7 +2033,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); } } Loading @@ -2046,11 +2046,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/"); } } Loading Loading @@ -2963,7 +2963,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); } } Loading Loading @@ -3310,7 +3310,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) { Loading Loading @@ -3357,7 +3357,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"); } Loading @@ -3367,7 +3367,7 @@ sub restore_installed_db ($) { { foreach my $ndbd (@{$cluster->{'ndbds'}}) { rmtree("$ndbd->{'path_fs'}" ); mtr_rmtree("$ndbd->{'path_fs'}" ); } } } Loading Loading
mysql-test/lib/mtr_misc.pl +60 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ # same name. use strict; use File::Find; sub mtr_full_hostname (); sub mtr_short_hostname (); Loading @@ -17,6 +18,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($$); Loading Loading @@ -202,6 +204,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; Loading
mysql-test/mysql-test-run.pl +10 −10 Original line number Diff line number Diff line Loading @@ -1988,7 +1988,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)"); Loading Loading @@ -2016,7 +2016,7 @@ sub remove_stale_vardir () { foreach my $bin ( glob("$opt_vardir/*") ) { mtr_verbose("Removing bin $bin"); rmtree($bin); mtr_rmtree($bin); } } } Loading @@ -2024,7 +2024,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 ) Loading @@ -2033,7 +2033,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); } } Loading @@ -2046,11 +2046,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/"); } } Loading Loading @@ -2963,7 +2963,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); } } Loading Loading @@ -3310,7 +3310,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) { Loading Loading @@ -3357,7 +3357,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"); } Loading @@ -3367,7 +3367,7 @@ sub restore_installed_db ($) { { foreach my $ndbd (@{$cluster->{'ndbds'}}) { rmtree("$ndbd->{'path_fs'}" ); mtr_rmtree("$ndbd->{'path_fs'}" ); } } } Loading