Fix for 831525: pt-query-digest help output mangled

This commit is contained in:
Brian Fraser
2012-11-08 13:38:09 -03:00
parent fb345eb3fd
commit 5e838050b6
3 changed files with 29 additions and 9 deletions

View File

@@ -1369,7 +1369,7 @@ sub print_usage {
$desc .= ". Optional suffix s=seconds, m=minutes, h=hours, " $desc .= ". Optional suffix s=seconds, m=minutes, h=hours, "
. "d=days; if no suffix, $s is used."; . "d=days; if no suffix, $s is used.";
} }
$desc = join("\n$rpad", grep { $_ } $desc =~ m/(.{0,$rcol})(?:\s+|$)/g); $desc = join("\n$rpad", grep { $_ } $desc =~ m/(.{0,$rcol}(?!\W))(?:\s+|(?<=\W)|$)/g);
$desc =~ s/ +$//mg; $desc =~ s/ +$//mg;
if ( $short ) { if ( $short ) {
$usage .= sprintf(" --%-${maxs}s -%s %s\n", $long, $short, $desc); $usage .= sprintf(" --%-${maxs}s -%s %s\n", $long, $short, $desc);
@@ -8106,16 +8106,20 @@ $Data::Dumper::Indent = 1;
$Data::Dumper::Sortkeys = 1; $Data::Dumper::Sortkeys = 1;
$Data::Dumper::Quotekeys = 0; $Data::Dumper::Quotekeys = 0;
local $EVAL_ERROR;
eval {
require Quoter;
};
sub new { sub new {
my ( $class, %args ) = @_; my ( $class, %args ) = @_;
my @required_args = qw(Quoter);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless $args{$arg};
}
my $self = { %args }; my $self = { %args };
$self->{Quoter} ||= Quoter->new();
return bless $self, $class; return bless $self, $class;
} }
sub Quoter { shift->{Quoter} }
sub get_create_table { sub get_create_table {
my ( $self, $dbh, $db, $tbl ) = @_; my ( $self, $dbh, $db, $tbl ) = @_;
die "I need a dbh parameter" unless $dbh; die "I need a dbh parameter" unless $dbh;

View File

@@ -1076,7 +1076,7 @@ sub print_usage {
. "d=days; if no suffix, $s is used."; . "d=days; if no suffix, $s is used.";
} }
# Wrap long descriptions # Wrap long descriptions
$desc = join("\n$rpad", grep { $_ } $desc =~ m/(.{0,$rcol})(?:\s+|$)/g); $desc = join("\n$rpad", grep { $_ } $desc =~ m/(.{0,$rcol}(?!\W))(?:\s+|(?<=\W)|$)/g);
$desc =~ s/ +$//mg; $desc =~ s/ +$//mg;
if ( $short ) { if ( $short ) {
$usage .= sprintf(" --%-${maxs}s -%s %s\n", $long, $short, $desc); $usage .= sprintf(" --%-${maxs}s -%s %s\n", $long, $short, $desc);

View File

@@ -9,7 +9,7 @@ BEGIN {
use strict; use strict;
use warnings FATAL => 'all'; use warnings FATAL => 'all';
use English qw(-no_match_vars); use English qw(-no_match_vars);
use Test::More tests => 6; use Test::More;
use PerconaTest; use PerconaTest;
@@ -58,7 +58,23 @@ like $output,
qr/\Q--embedded-attributes POSIX syntax [: :] belongs inside character/, qr/\Q--embedded-attributes POSIX syntax [: :] belongs inside character/,
"Bug 885382: --embedded-attributes rejects warning patterns early";; "Bug 885382: --embedded-attributes rejects warning patterns early";;
# #############################################################################
# pt-query-digest help output mangled
# https://bugs.launchpad.net/percona-toolkit/+bug/831525
# #############################################################################
$output = `$trunk/bin/pt-query-digest --help`;
like(
$output,
qr/\Q--report-format=A\E\s*
\QPrint these sections of the query analysis\E\s*
\Qreport (default rusage,date,hostname,files,\E\s*
\Qheader,profile,query_report,prepared)\E/x,
"Bug 831525: pt-query-digest help output mangled"
);
# ############################################################################# # #############################################################################
# Done. # Done.
# ############################################################################# # #############################################################################
exit; done_testing;