summaryrefslogtreecommitdiff
path: root/mysql-test/lib
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2022-07-18 23:16:17 +0300
committerAleksey Midenkov <midenok@gmail.com>2022-07-18 23:16:17 +0300
commit1bdcffb02801df880a63a6ced7c87bf70ee1886f (patch)
treee855429ef4f270c3cfb120bc5384e026a9066aac /mysql-test/lib
parente9be5428a27eaaccf142f2bd53f4d30e8e368484 (diff)
downloadmariadb-git-1bdcffb02801df880a63a6ced7c87bf70ee1886f.tar.gz
MDEV-29025 Refactoring: moved out core_wanted() out of mysql-test-run.pl
Diffstat (limited to 'mysql-test/lib')
-rw-r--r--mysql-test/lib/My/CoreDump.pm36
1 files changed, 35 insertions, 1 deletions
diff --git a/mysql-test/lib/My/CoreDump.pm b/mysql-test/lib/My/CoreDump.pm
index 3b61f20ef24..298cf9ef877 100644
--- a/mysql-test/lib/My/CoreDump.pm
+++ b/mysql-test/lib/My/CoreDump.pm
@@ -23,6 +23,8 @@ use Text::Wrap;
use Data::Dumper;
use File::Temp qw/ tempfile tempdir /;
+use File::Find;
+use File::Basename;
use mtr_results;
use mtr_report;
@@ -489,7 +491,7 @@ sub _auto
sub show {
- my ($class, $core_name, $exe_mysqld, $parallel)= @_;
+ my ($core_name, $exe_mysqld, $parallel)= @_;
if ($config{print_core} ne 'no') {
my $f= $config{print_core};
my $m= $config{print_method};
@@ -506,4 +508,36 @@ sub show {
}
+sub core_wanted($$$$$) {
+ my ($num_saved_cores, $opt_max_save_core, $compress,
+ $exe_mysqld, $opt_parallel)= @_;
+ my $core_file= $File::Find::name;
+ my $core_name= basename($core_file);
+
+ # Name beginning with core, not ending in .gz
+ if (($core_name =~ /^core/ and $core_name !~ /\.gz$/)
+ or (IS_WINDOWS and $core_name =~ /\.dmp$/))
+ {
+ # Ending with .dmp
+ mtr_report(" - found '$core_name'",
+ "($$num_saved_cores/$opt_max_save_core)");
+
+ show($core_file, $exe_mysqld, $opt_parallel);
+
+ # Limit number of core files saved
+ if ($$num_saved_cores >= $opt_max_save_core)
+ {
+ mtr_report(" - deleting it, already saved",
+ "$opt_max_save_core");
+ unlink("$core_file");
+ }
+ else
+ {
+ main::mtr_compress_file($core_file) if $compress;
+ ++$$num_saved_cores;
+ }
+ }
+}
+
+
1;