# lib.pl
# Utility functions for the test suite.
use strict;
use SQL::Interpolate qw(:all);
use SQL::Interpolate::Macro qw(sql_flatten);
use Data::Dumper;
#our $fake_mysql_dbh =
# bless {Driver => {Name => 'mysql'}}, 'DBI::db';
# Return normalized string representation of SQL interpolation list.
sub sql_str
{
my(@parts) = @_;
@parts = sql_flatten @parts;
my $out = Dumper(\@parts);
# normalize
$out =~ s/\s+/ /gs;
$out =~ s/^.*?=\s*//;
$out =~ s/;.*?$//;
return $out;
}
# modified version of is_deeply
sub my_deeply
{
# prevent warning "Argument \"...\" isn't numeric in numeric eq (==)"
# caused by some problem in old versions of Test::More.
local $SIG{__WARN__} = sub {
warn $_[0] if $_[0] !~ /isn't numeric in numeric eq/;
};
is_deeply(@_) or print STDERR Dumper(@_);
}
1