]> git.vpit.fr Git - perl/modules/Sub-Op.git/blob - t/21-monkeypatch.t
Test monkeypatching
[perl/modules/Sub-Op.git] / t / 21-monkeypatch.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 BEGIN {
9  if (exists $INC{'B.pm'} or exists $INC{'B/Deparse.pm'}) {
10   plan skip_all => 'Test::More loaded B or B::Deparse for some reason';
11  } else {
12   plan tests => 5;
13  }
14 }
15
16 use Sub::Op;
17
18 BEGIN {
19  is_deeply [ sort keys %B:: ], [ sort
20   qw/OP:: Deparse:: Hooks::/,
21   qw/OPf_STACKED/,
22   qw/svref_2object/,
23  ], 'No extra symbols in B::';
24  is_deeply [ sort keys %B::Deparse:: ], [ sort
25   qw/null pp_entersub/
26  ], 'No extra symbols in B::Deparse';
27 }
28
29 use B;
30
31 BEGIN {
32  for my $meth (qw/first can/) {
33   ok do { no strict 'refs'; defined &{"B::OP::$meth"} },
34                                       "B::OP::$meth is now defined";
35  }
36 }
37
38 use B::Deparse;
39
40 BEGIN {
41  for my $meth (qw/pp_custom/) {
42   ok do { no strict 'refs'; defined &{"B::Deparse::$meth"} },
43                                       "B::Deparse::$meth is now defined";
44  }
45 }