diff options
author | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-05-12 11:41:48 +0200 |
---|---|---|
committer | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-05-12 11:41:48 +0200 |
commit | 1310fcd8e6e31803f37ce92a26d0d0ec4e1f490f (patch) | |
tree | 6ea56ae1b75af3166701b4a10d44cbd419f7c23a | |
parent | 1bc149051a78b31f52161e3c6746033f2b39147a (diff) | |
download | perl-dual/Safe.tar.gz |
More tests for Safedual/Safe
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | dist/Safe/t/safeload.t | 6 | ||||
-rw-r--r-- | dist/Safe/t/saferegexp.t | 34 |
3 files changed, 40 insertions, 1 deletions
@@ -2760,6 +2760,7 @@ dist/Safe/t/safe2.t See if Safe works dist/Safe/t/safe3.t See if Safe works dist/Safe/t/safeload.t Tests that some modules can be loaded by Safe dist/Safe/t/safeops.t Tests that all ops can be trapped by Safe +dist/Safe/t/saferegexp.t Tests Safe with regexps dist/Safe/t/safesort.t Tests Safe with sort dist/Safe/t/safeuniversal.t Tests Safe with functions from universal.c dist/Safe/t/safeutf8.t Tests Safe with utf8.pm diff --git a/dist/Safe/t/safeload.t b/dist/Safe/t/safeload.t index 2d2c3ccb4a..3ed2793fd7 100644 --- a/dist/Safe/t/safeload.t +++ b/dist/Safe/t/safeload.t @@ -18,9 +18,13 @@ BEGIN { use strict; use Test::More; use Safe; -plan(tests => 1); +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 $@; diff --git a/dist/Safe/t/saferegexp.t b/dist/Safe/t/saferegexp.t new file mode 100644 index 0000000000..2719ca1202 --- /dev/null +++ b/dist/Safe/t/saferegexp.t @@ -0,0 +1,34 @@ +#!perl -w + +BEGIN { + require Config; import Config; + if ($Config{'extensions'} !~ /\bOpcode\b/) { + print "1..0\n"; + exit 0; + } +} + +use Test::More tests => 3; +use Safe; + +my $c; my $r; +my $snippet = q{ + my $foo = qr/foo/; + ref $foo; +}; +$c = new Safe; +$r = $c->reval($snippet); +is( $r, "Safe::Root0::Regexp" ); +$r or diag $@; + +# once more with the same compartment +# (where DESTROY has been cleaned up) +$r = $c->reval($snippet); +is( $r, "Safe::Root0::Regexp" ); +$r or diag $@; + +# try with a new compartment +$c = new Safe; +$r = $c->reval($snippet); +is( $r, "Safe::Root1::Regexp" ); +$r or diag $@; |