home *** CD-ROM | disk | FTP | other *** search
- 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;
-