Commit e57de95f authored by Bjorn Munch's avatar Bjorn Munch

Bug #11750043 40340: USE GZIPPED CORE FILES TO SAVE SPACE

Use [g]zip on core file if available, ignore if not
Skip if running named test, and print a line saying what it compressed.
parent b9937c40
...@@ -31,6 +31,7 @@ sub mtr_script_exists(@); ...@@ -31,6 +31,7 @@ sub mtr_script_exists(@);
sub mtr_file_exists(@); sub mtr_file_exists(@);
sub mtr_exe_exists(@); sub mtr_exe_exists(@);
sub mtr_exe_maybe_exists(@); sub mtr_exe_maybe_exists(@);
sub mtr_compress_file($);
sub mtr_milli_sleep($); sub mtr_milli_sleep($);
sub start_timer($); sub start_timer($);
sub has_expired($); sub has_expired($);
...@@ -199,6 +200,40 @@ sub mtr_exe_exists (@) { ...@@ -199,6 +200,40 @@ sub mtr_exe_exists (@) {
} }
} }
#
# Try to compress file using tools that might be available.
# If zip/gzip is not available, just silently ignore.
#
sub mtr_compress_file ($) {
my ($filename)= @_;
mtr_error ("File to compress not found: $filename") unless -f $filename;
my $did_compress= 0;
if (IS_WINDOWS)
{
# Capture stderr
my $ziperr= `zip $filename.zip $filename 2>&1`;
if ($?) {
print "$ziperr\n" if $ziperr !~ /recognized as an internal or external/;
} else {
unlink($filename);
$did_compress=1;
}
}
else
{
my $gzres= system("gzip $filename");
$did_compress= ! $gzres;
if ($gzres && $gzres != -1) {
mtr_error ("Error: have gzip but it fails to compress core file");
}
}
mtr_print("Compressed file $filename") if $did_compress;
}
sub mtr_milli_sleep ($) { sub mtr_milli_sleep ($) {
die "usage: mtr_milli_sleep(milliseconds)" unless @_ == 1; die "usage: mtr_milli_sleep(milliseconds)" unless @_ == 1;
......
...@@ -657,6 +657,8 @@ sub run_test_server ($$$) { ...@@ -657,6 +657,8 @@ sub run_test_server ($$$) {
mtr_report(" - deleting it, already saved", mtr_report(" - deleting it, already saved",
"$opt_max_save_core"); "$opt_max_save_core");
unlink("$core_file"); unlink("$core_file");
} else {
mtr_compress_file($core_file) unless @opt_cases;
} }
++$num_saved_cores; ++$num_saved_cores;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment