File: 478-cmp_ok_hash.t

package info (click to toggle)
perl 5.24.1-3%2Bdeb9u7
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 107,108 kB
  • sloc: perl: 559,649; ansic: 293,918; sh: 67,316; pascal: 7,632; cpp: 3,895; makefile: 2,436; xml: 2,410; yacc: 989; sed: 6; lisp: 1
file content (41 lines) | stat: -rw-r--r-- 923 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;