]> git.vpit.fr Git - perl/modules/Scope-Context.git/blob - t/13-valid.t
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/Scope-Context.git] / t / 13-valid.t
1 #!perl -T
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 4 + 10;
7
8 use Scope::Context;
9
10 my $fail_rx = qr/^Context has expired at \Q$0\E line [0-9]+/;
11
12 {
13  my $sc;
14  {
15   $sc = Scope::Context->new;
16   ok $sc->is_valid, 'freshly created context is valid';
17   ok $sc->up->is_valid, 'up context is valid as well';
18   {
19    ok $sc->is_valid, 'also valid in a subblock';
20   }
21  }
22  ok !$sc->is_valid, 'context has expired';
23
24  my @methods = qw<
25   up sub eval
26   reap localize localize_elem localize_delete
27   unwind yield
28   uplevel
29  >;
30  for my $action (@methods) {
31   local $@;
32   eval {
33    $sc->$action;
34   };
35   my $line = __LINE__-2;
36   like $@, qr/^Context has expired at \Q$0\E line \Q$line\E/,
37            "$action\->up croaks";
38  }
39 }