Fix for 1059732: pt-table-checksum doesn't test all hash functions

This commit is contained in:
Brian Fraser fraserb@gmail.com
2012-10-30 12:38:31 -03:00
parent d616a7e5e6
commit 19f55542a2
3 changed files with 18 additions and 0 deletions

View File

@@ -5287,6 +5287,7 @@ sub _get_hash_func {
if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) { if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) {
$error .= qq{$func cannot be used because "$1"\n}; $error .= qq{$func cannot be used because "$1"\n};
PTDEBUG && _d($func, 'cannot be used because', $1); PTDEBUG && _d($func, 'cannot be used because', $1);
next;
} }
PTDEBUG && _d('Chosen hash func:', $result); PTDEBUG && _d('Chosen hash func:', $result);
return $func; return $func;

View File

@@ -290,6 +290,7 @@ sub _get_hash_func {
if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) { if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) {
$error .= qq{$func cannot be used because "$1"\n}; $error .= qq{$func cannot be used because "$1"\n};
PTDEBUG && _d($func, 'cannot be used because', $1); PTDEBUG && _d($func, 'cannot be used because', $1);
next;
} }
PTDEBUG && _d('Chosen hash func:', $result); PTDEBUG && _d('Chosen hash func:', $result);
return $func; return $func;

View File

@@ -461,6 +461,22 @@ like(
'Dies if all columns are ignored by --columns' 'Dies if all columns are ignored by --columns'
); );
# #############################################################################
# pt-table-checksum doesn't test all hash functions
# https://bugs.launchpad.net/percona-toolkit/+bug/1059732
# #############################################################################
@ARGV = qw(--function FALSEFUNC);
$o->get_opts();
unlike(
$c->_get_hash_func(
dbh => $dbh,
),
qr/FALSEFUNC/,
"_get_hash_func doesn't return failed functions",
);
# ############################################################################ # ############################################################################
# Done. # Done.
# ############################################################################ # ############################################################################