dbm_filter_util.pl revision 7c478bd95313f5f23a4c958a745db2134aa03244
use strict;
use warnings;
sub StoreData
{
my $hashref = shift ;
my $store = shift ;
my (undef, $file, $line) = caller;
ok 1, "StoreData called from $file, line $line";
ok ref $store eq 'HASH', "Store Data is a hash reference";
ok tied %$hashref, "Storing to tied hash";
while (my ($k, $v) = each %$store) {
no warnings 'uninitialized';
#diag "Stored [$k][$v]";
$$hashref{$k} = $v ;
}
}
sub VerifyData
{
my $hashref = shift ;
my $expected = shift ;
my %expected = %$expected;
my (undef, $file, $line) = caller;
ok 1, "VerifyData called from $file, line $line";
ok ref $expected eq 'HASH', "Expected data is a hash reference";
ok tied %$hashref, "Verifying a tied hash";
my %bad = ();
while (my ($k, $v) = each %$hashref) {
no warnings 'uninitialized';
if ($expected{$k} eq $v) {
#diag "Match [$k][$v]";
delete $expected{$k} ;
}
else {
#diag "No Match [$k][$v]";
$bad{$k} = $v;
}
}
if( ! ok(keys(%bad) + keys(%expected) == 0, "Expected == Actual") ) {
my $bad = "Expected does not match actual\n";
if (keys %expected ) {
$bad .=" No Match from Expected:\n" ;
while (my ($k, $v) = each %expected) {
$bad .= "\t'$k' =>\t'$v'\n";
}
}
if (keys %bad ) {
$bad .= "\n No Match from Actual:\n" ;
while (my ($k, $v) = each %bad) {
no warnings 'uninitialized';
$bad .= "\t'$k' =>\t'$v'\n";
}
}
diag "${bad}\n" ;
}
}
1;