#!/usr/bin/perl -w # Test is_deeply and friends with circular data structures [rt.cpan.org 7289] BEGIN { if( $ENV{PERL_CORE} ) { chdir 't'; @INC = ('../lib', 'lib'); } else { unshift @INC, 't/lib'; } } use strict; use Test::More tests => 11; my $a1 = [ 1, 2, 3 ]; push @$a1, $a1; my $a2 = [ 1, 2, 3 ]; push @$a2, $a2; is_deeply $a1, $a2; ok( eq_array ($a1, $a2) ); ok( eq_set ($a1, $a2) ); my $h1 = { 1=>1, 2=>2, 3=>3 }; $h1->{4} = $h1; my $h2 = { 1=>1, 2=>2, 3=>3 }; $h2->{4} = $h2; is_deeply $h1, $h2; ok( eq_hash ($h1, $h2) ); my ($r, $s); $r = \$r; $s = \$s; ok( eq_array ([$s], [$r]) ); { # Classic set of circular scalar refs. my($a,$b,$c); $a = \$b; $b = \$c; $c = \$a; my($d,$e,$f); $d = \$e; $e = \$f; $f = \$d; is_deeply( $a, $a ); is_deeply( $a, $d ); } { # rt.cpan.org 11623 # Make sure the circular ref checks don't get confused by a reference # which is simply repeating. my $a = {}; my $b = {}; my $c = {}; is_deeply( [$a, $a], [$b, $c] ); is_deeply( { foo => $a, bar => $a }, { foo => $b, bar => $c } ); is_deeply( [\$a, \$a], [\$b, \$c] ); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Builder | Folder | 0755 |
|
|
Simple | Folder | 0755 |
|
|
Tester | Folder | 0755 |
|
|
lib | Folder | 0755 |
|
|
subtest | Folder | 0755 |
|
|
00compile.t | File | 982 B | 0644 |
|
00test_harness_check.t | File | 764 B | 0644 |
|
BEGIN_require_ok.t | File | 463 B | 0644 |
|
BEGIN_use_ok.t | File | 388 B | 0644 |
|
More.t | File | 5.1 KB | 0644 |
|
bad_plan.t | File | 495 B | 0644 |
|
bail_out.t | File | 660 B | 0644 |
|
buffer.t | File | 424 B | 0644 |
|
c_flag.t | File | 417 B | 0644 |
|
circular_data.t | File | 1.17 KB | 0644 |
|
cmp_ok.t | File | 1.54 KB | 0644 |
|
dependents.t | File | 939 B | 0644 |
|
diag.t | File | 1.4 KB | 0644 |
|
died.t | File | 848 B | 0644 |
|
dont_overwrite_die_handler.t | File | 353 B | 0644 |
|
eq_set.t | File | 562 B | 0644 |
|
exit.t | File | 2.98 KB | 0644 |
|
explain.t | File | 582 B | 0644 |
|
extra.t | File | 958 B | 0644 |
|
extra_one.t | File | 869 B | 0644 |
|
fail-like.t | File | 1.52 KB | 0644 |
|
fail-more.t | File | 10.37 KB | 0644 |
|
fail.t | File | 1.04 KB | 0644 |
|
fail_one.t | File | 697 B | 0644 |
|
filehandles.t | File | 290 B | 0644 |
|
fork.t | File | 574 B | 0644 |
|
harness_active.t | File | 1.35 KB | 0644 |
|
import.t | File | 244 B | 0644 |
|
is_deeply_dne_bug.t | File | 887 B | 0644 |
|
is_deeply_fail.t | File | 11.25 KB | 0644 |
|
is_deeply_with_threads.t | File | 1.4 KB | 0644 |
|
missing.t | File | 1.03 KB | 0644 |
|
new_ok.t | File | 705 B | 0644 |
|
no_plan.t | File | 664 B | 0644 |
|
no_tests.t | File | 782 B | 0644 |
|
note.t | File | 416 B | 0644 |
|
overload.t | File | 2.13 KB | 0644 |
|
overload_threads.t | File | 1.04 KB | 0644 |
|
plan.t | File | 474 B | 0644 |
|
plan_bad.t | File | 1.05 KB | 0644 |
|
plan_is_noplan.t | File | 404 B | 0644 |
|
plan_no_plan.t | File | 794 B | 0644 |
|
plan_shouldnt_import.t | File | 294 B | 0644 |
|
plan_skip_all.t | File | 190 B | 0644 |
|
pod-coverage.t | File | 793 B | 0644 |
|
pod.t | File | 149 B | 0644 |
|
require_ok.t | File | 786 B | 0644 |
|
simple.t | File | 200 B | 0644 |
|
skip.t | File | 1.9 KB | 0644 |
|
skipall.t | File | 481 B | 0644 |
|
tbm_doesnt_set_exported_to.t | File | 457 B | 0644 |
|
thread_taint.t | File | 122 B | 0644 |
|
threads.t | File | 629 B | 0644 |
|
todo.t | File | 3.28 KB | 0644 |
|
undef.t | File | 1.84 KB | 0644 |
|
use_ok.t | File | 1.42 KB | 0644 |
|
useing.t | File | 365 B | 0644 |
|
utf8.t | File | 1.25 KB | 0644 |
|
versions.t | File | 482 B | 0644 |
|