diff --git a/mysql-test/lib/My/File/Path.pm b/mysql-test/lib/My/File/Path.pm index eeb7546b0b8..7ef1211ff52 100644 --- a/mysql-test/lib/My/File/Path.pm +++ b/mysql-test/lib/My/File/Path.pm @@ -92,9 +92,16 @@ sub mkpath { sub copytree { - my ($from_dir, $to_dir) = @_; + my ($from_dir, $to_dir, $use_umask) = @_; - die "Usage: copytree(, " unless @_ == 2; + die "Usage: copytree(, , [])" + unless @_ == 2 or @_ == 3; + + my $orig_umask; + if ($use_umask){ + # Set new umask and remember the original + $orig_umask= umask(oct($use_umask)); + } mkpath("$to_dir"); opendir(DIR, "$from_dir") @@ -114,6 +121,11 @@ sub copytree { copy("$from_dir/$_", "$to_dir/$_"); } closedir(DIR); + + if ($orig_umask){ + # Set the original umask + umask($orig_umask); + } } 1; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 049dbb4aceb..87aa2f48daf 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1981,8 +1981,8 @@ sub setup_vardir() { } # copy all files from std_data into var/std_data - # and make them writable - copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data"); + # and make them world readable + copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022"); # Remove old log files foreach my $name (glob("r/*.progress r/*.log r/*.warnings"))