This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Retract #20548 and #20465.
authorJarkko Hietaniemi <jhi@iki.fi>
Tue, 9 Sep 2003 15:02:18 +0000 (15:02 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Tue, 9 Sep 2003 15:02:18 +0000 (15:02 +0000)
p4raw-id: //depot/perl@21143

lib/Test/More.pm
lib/Test/Simple/t/More.t
lib/Test/Simple/t/is_deeply.t

index 76235d8..d82f81d 100644 (file)
@@ -937,7 +937,7 @@ sub is_deeply {
     my($this, $that, $name) = @_;
 
     my $ok;
-    if( !ref $this && !ref $that ) {
+    if( !ref $this || !ref $that ) {
         $ok = $Test->is_eq($this, $that, $name);
     }
     else {
@@ -984,9 +984,8 @@ sub _format_stack {
     foreach my $idx (0..$#vals) {
         my $val = $vals[$idx];
         $vals[$idx] = !defined $val ? 'undef' : 
-                                    ref $val ? $val eq $DNE  ? "Does not exist"
-                                                             : $val
-                                             : "'$val'"
+                      $val eq $DNE  ? "Does not exist"
+                                    : "'$val'";
     }
 
     $out .= "$vars[0] = $vals[0]\n";
@@ -996,12 +995,6 @@ sub _format_stack {
     return $out;
 }
 
-sub eq_deeply {
-    my ($a1, $a2) = @_;
-
-    local @Data_Stack = ();
-    return _deep_check($a1, $a2);
-}
 
 =item B<eq_array>
 
@@ -1013,14 +1006,7 @@ multi-level structures are handled correctly.
 =cut
 
 #'#
-
-sub eq_array {
-    my ($a1, $a2) = @_;
-
-    return UNIVERSAL::isa($a2, "ARRAY") ? eq_deeply($a1, $a2) : 0;
-}
-
-sub _eq_array  {
+sub eq_array  {
     my($a1, $a2) = @_;
     return 1 if $a1 eq $a2;
 
@@ -1048,24 +1034,19 @@ sub _deep_check {
         # Quiet uninitialized value warnings when comparing undefs.
         local $^W = 0; 
 
-        if( ! (ref $e1 xor ref $e2) and $e1 eq $e2 ) {
+        if( $e1 eq $e2 ) {
             $ok = 1;
         }
         else {
-            if ( (ref $e1 and $e1 eq $DNE) or
-               (ref $e2 and $e2 eq $DNE) )
-            {
-               $ok = 0;
-            }
-            elsif( UNIVERSAL::isa($e1, 'ARRAY') and
+            if( UNIVERSAL::isa($e1, 'ARRAY') and
                 UNIVERSAL::isa($e2, 'ARRAY') )
             {
-                $ok = _eq_array($e1, $e2);
+                $ok = eq_array($e1, $e2);
             }
             elsif( UNIVERSAL::isa($e1, 'HASH') and
                    UNIVERSAL::isa($e2, 'HASH') )
             {
-                $ok = _eq_hash($e1, $e2);
+                $ok = eq_hash($e1, $e2);
             }
             elsif( UNIVERSAL::isa($e1, 'REF') and
                    UNIVERSAL::isa($e2, 'REF') )
@@ -1079,7 +1060,6 @@ sub _deep_check {
             {
                 push @Data_Stack, { type => 'REF', vals => [$e1, $e2] };
                 $ok = _deep_check($$e1, $$e2);
-                pop @Data_Stack if $ok;
             }
             else {
                 push @Data_Stack, { vals => [$e1, $e2] };
@@ -1102,12 +1082,6 @@ is a deep check.
 =cut
 
 sub eq_hash {
-    my ($a1, $a2) = @_;
-
-    return UNIVERSAL::isa($a2, "HASH") ? eq_deeply($a1, $a2) : 0;
-}
-
-sub _eq_hash {
     my($a1, $a2) = @_;
     return 1 if $a1 eq $a2;
 
index abd1e80..df8c5fe 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     }
 }
 
-use Test::More tests => 42;
+use Test::More tests => 41;
 
 # Make sure we don't mess with $@ or $!.  Test at bottom.
 my $Err   = "this should not be touched";
@@ -69,9 +69,6 @@ ok( eq_hash({ foo => 42, bar => 23 }, {bar => 23, foo => 42}),
 ok( eq_set([qw(this that whatever)], [qw(that whatever this)]),
     'eq_set with simple sets' );
 
-eq_array([[]], [{}]);
-is(scalar @Test::More::Data_Stack, 0, "data stack empty");
-
 my @complex_array1 = (
                       [qw(this that whatever)],
                       {foo => 23, bar => 42},
index 3d893b0..6901f57 100644 (file)
@@ -92,8 +92,8 @@ is( $out, "not ok 2 - different types\n",   'different types' );
 like( $err, <<ERR,                          '   right diagnostic' );
 #     Failed test \\($Filename at line 78\\)
 #     Structures begin differing at:
-#          \\\$got = HASH\\(0x[0-9a-f]+\\)
-#     \\\$expected = ARRAY\\(0x[0-9a-f]+\\)
+#          \\\$got = 'HASH\\(0x[0-9a-f]+\\)'
+#     \\\$expected = 'ARRAY\\(0x[0-9a-f]+\\)'
 ERR
 
 #line 88
@@ -166,8 +166,8 @@ is( $out, "not ok 9 - mixed scalar and array refs\n",
 like( $err, <<ERR,                      '    right diagnostic' );
 #     Failed test \\($Filename at line 151\\)
 #     Structures begin differing at:
-#          \\\$got = ARRAY\\(0x[0-9a-f]+\\)
-#     \\\$expected = SCALAR\\(0x[0-9a-f]+\\)
+#          \\\$got = 'ARRAY\\(0x[0-9a-f]+\\)'
+#     \\\$expected = 'SCALAR\\(0x[0-9a-f]+\\)'
 ERR
 
 
@@ -213,35 +213,3 @@ is( $err, <<ERR,                            '    right diagnostic' );
 #          \$got->{that}{foo} = Does not exist
 #     \$expected->{that}{foo} = '42'
 ERR
-
-#line 217
-is_deeply([(\"a"), "b"], [(\"a"), "c"], "scalar refs diag");
-is( $out, "not ok 12 - scalar refs diag\n",  'scalar refs diag' );
-is( $err, <<ERR,                            '    right diagnostic' );
-#     Failed test ($0 at line 217)
-#     Structures begin differing at:
-#          \$got->[1] = 'b'
-#     \$expected->[1] = 'c'
-ERR
-
-#line 228
-my $a = [];
-is_deeply($a, $a."", "mixed ref and stringified ref");
-is( $out, "not ok 13 - mixed ref and stringified ref\n",  'mixed ref and stringified ref' );
-is( $err, <<ERR,                            '    right diagnostic' );
-#     Failed test ($0 at line 229)
-#     Structures begin differing at:
-#          \$got = $a
-#     \$expected = '$a'
-ERR
-
-#line 238
-my $b = [];
-is_deeply({}, {key => $b}, "Does Not Exist");
-is( $out, "not ok 14 - Does Not Exist\n",  'Does Not Exist' );
-is( $err, <<ERR,                            '    right diagnostic' );
-#     Failed test ($0 at line 239)
-#     Structures begin differing at:
-#          \$got->{key} = Does not exist
-#     \$expected->{key} = $b
-ERR