diff options
Diffstat (limited to 'cpan/Test-Simple/t/478-cmp_ok_hash.t')
-rw-r--r-- | cpan/Test-Simple/t/478-cmp_ok_hash.t | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/cpan/Test-Simple/t/478-cmp_ok_hash.t b/cpan/Test-Simple/t/478-cmp_ok_hash.t new file mode 100644 index 0000000000..811835b9d3 --- /dev/null +++ b/cpan/Test-Simple/t/478-cmp_ok_hash.t @@ -0,0 +1,41 @@ +use strict; +use warnings; +use Test::More; + + +my $want = 0; +my $got = 0; + +cmp_ok($got, 'eq', $want, "Passes on correct comparison"); + +my ($res, @ok, @diag, @warn); +{ + no warnings 'redefine'; + local *Test::Builder::ok = sub { + my ($tb, $ok, $name) = @_; + push @ok => $ok; + return $ok; + }; + local *Test::Builder::diag = sub { + my ($tb, @d) = @_; + push @diag => @d; + }; + local $SIG{__WARN__} = sub { + push @warn => @_; + }; + $res = cmp_ok($got, '#eq', $want, "You shall not pass!"); +} + +ok(!$res, "Did not pass"); + +is(@ok, 1, "1 result"); +ok(!$ok[0], "result is false"); + +# We only care that it mentions a syntax error. +like(join("\n" => @diag), qr/syntax error at \(eval in cmp_ok\)/, "Syntax error"); + +# We are not going to inspect the warning because it is not super predictable, +# and changes with eval specifics. +ok(@warn, "We got warnings"); + +done_testing; |