2008/8/4 Ovid <[EMAIL PROTECTED]>:
> There's a nasty bug in the latest development version of Test::Differences.  
> By applying a patch which allows this to pass (it currently won't):
>
>  eq_or_diff { foo => 1 }, { foo => '1' };
>
> It also allows this to pass:
>
>  eq_or_diff [ { foo => 1 } ], { foo => '1' };
>
> Ow, ow, ow.  This is terrible.  Fortunately, that's what development versions 
> are for.
>
> I'm thinking about rewriting Test::Differences to use &Test::More::is_deeply 
> for the test and only diff if there are differences.  Currently it uses 
> Data::Dumper or its own internal flattening and and compares the string 
> outputs.
>
> There are two side-effects I can think of.  First, the string/numeric value 
> comparison will work correctly. Second, the 'Array of HashRef' diff output 
> will change dramatically.  There's an internal hack which assumes and an AoH 
> is a table (likely pulled from DBI, I assume), and this:
>
>  eq_or_diff [ { name => 'Bob', id => 1 } ],
>             [ { name => 'Bob', id => 2 } ], 'aoh';
>
> Generates this:
>
>  #   Failed test 'aoh'
>  #   at eq_or_diff.t line 13.
>  # +----+---------+----------+
>  # | Elt|Got      |Expected  |
>  # +----+---------+----------+
>  # |   0|id,name  |id,name   |
>  # *   1|1,Bob    |2,Bob     *
>  # +----+---------+----------+
>
> I find this mcch harder to read, but others may appreciate the hash keys 
> being pulled out as headers.
>
> Does anyone object to me breaking this?  Are there any problems that I 
> haven't thought of?  (There usually are)

perl -MTest::More=no_plan -e 'is_deeply({}, bless({}, "foo"))'
ok 1
1..1


I'm not familiar with Test::Differences but if it considers blessed
part of equality then using is_deeply will lose that.

Also even for "good" changes, changing the meaning of equality for a
widely used testing tool could cause a lot of problems,

F

> Cheers,
> Ovid
> --
> Buy the book         - http://www.oreilly.com/catalog/perlhks/
> Tech blog            - http://use.perl.org/~Ovid/journal/
> Twitter              - http://twitter.com/OvidPerl
> Official Perl 6 Wiki - http://www.perlfoundation.org/perl6
>

Reply via email to