summaryrefslogtreecommitdiff
path: root/dist/Safe/t/safeload.t
blob: 3ed2793fd77a52c748b4302688f55807fb245693 (plain)
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
#!perl

BEGIN {
    require Config;
    import Config;
    if ($Config{'extensions'} !~ /\bOpcode\b/) {
	print "1..0\n";
	exit 0;
    }
    # Can we load the version module ?
    eval { require version; 1 } or do {
	print "1..0 # no version.pm\n";
	exit 0;
    };
    delete $INC{"version.pm"};
}

use strict;
use Test::More;
use Safe;
plan(tests => 2);

my $c = new Safe;
$c->permit(qw(require caller entereval unpack));
my $r = $c->reval(q{ use version; 1 });
ok( defined $r, "Can load version.pm in a Safe compartment" ) or diag $@;

$r = $c->reval(q{ version->new(1.2) });
is(ref $r, "Safe::Root0::version", "version objects rerooted");
$r or diag $@;