xref: /openbsd-src/gnu/usr.bin/perl/dist/Carp/t/broken_univ_can.t (revision 256a93a44f36679bee503f12e49566c2183f6181)
1*256a93a4Safresh1use strict;
2*256a93a4Safresh1use warnings;
3*256a93a4Safresh1
45759b3d2Safresh1# [perl #132910]
55759b3d2Safresh1# This mock-up breaks Test::More.  Don’t use Test::More.
65759b3d2Safresh1
7*256a93a4Safresh1{
8*256a93a4Safresh1    no warnings 'redefine';
95759b3d2Safresh1    sub UNIVERSAL::can { die; }
10*256a93a4Safresh1}
115759b3d2Safresh1
125759b3d2Safresh1# Carp depends on this to detect the override:
13*256a93a4Safresh1BEGIN { no warnings 'portable'; $UNIVERSAL::can::VERSION = 0xbaff1ed_bee; }
145759b3d2Safresh1
155759b3d2Safresh1use Carp;
165759b3d2Safresh1
175759b3d2Safresh1eval {
18*256a93a4Safresh1    sub { confess-sins }->(bless[], 'Foo');
195759b3d2Safresh1};
205759b3d2Safresh1print "1..1\n";
215759b3d2Safresh1if ($@ !~ qr/^-sins at /) {
225759b3d2Safresh1  print "not ok 1\n";
235759b3d2Safresh1  print "# Expected -sins at blah blah blah...\n";
245759b3d2Safresh1  print "# Instead, we got:\n";
255759b3d2Safresh1  $@ =~ s/^/#   /mg;
265759b3d2Safresh1  print $@;
275759b3d2Safresh1}
285759b3d2Safresh1else {
295759b3d2Safresh1  print "ok 1\n";
305759b3d2Safresh1}
31