Debian lenny version packages
[pkg-perl] / deb-src / libdevel-symdump-perl / libdevel-symdump-perl-2.08 / t / diff.t
1 #!/usr/bin/perl -w
2
3 use lib 'lib' ;
4
5 use Devel::Symdump ();
6 BEGIN {
7     $SIG{__WARN__}=sub {return "" if $_[0] =~ /used only once/; print @_;};
8 }
9
10 print "1..1\n";
11
12 $scalar = 1;
13 @array  = 1;
14 %hash   = (A=>B);
15 %package::hash = (A=>B);
16 sub package::function {}
17 open FH, ">/dev/null";
18 opendir DH, ".";
19
20 my $a = Devel::Symdump->rnew;
21
22 my($eval) = <<'END';
23 $scalar2 = 1;
24 undef @array;
25 undef %hash;
26 %hash2 = (A=>B);
27 $package2::scalar3 = 3;
28 close FH;
29 closedir DH;
30 END
31
32 eval $eval;
33
34 my $b = Devel::Symdump->rnew;
35
36 # testing diff is too difficult at the stage between 5.003 and 5.004
37 # we have new variables and new methods to determine them. Both have
38 # an impact on diff, so we're backing out this test and always say ok
39
40 if ( 1 || $a->diff($b) eq 'arrays
41 - main::array
42 dirhandles
43 - main::DH
44 filehandles
45 - main::FH
46 hashes
47 - main::hash
48 + main::hash2
49 packages
50 + package2
51 scalars
52 + main::scalar2
53 + package2::scalar3
54 unknowns
55 + main::DH
56 + main::FH
57 + main::array
58 + main::hash'
59 ){
60     print "ok 1\n";
61 } else {
62     print "not ok:
63 a
64 -
65 ", $a->as_string, "
66 b
67 -
68 ", $b->as_string, "
69 diff
70 ----
71 ", $a->diff($b), "\n";
72 }