summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--t/bug-rt-78272.t50
1 files changed, 28 insertions, 22 deletions
diff --git a/t/bug-rt-78272.t b/t/bug-rt-78272.t
index 670782b..c2bfff4 100644
--- a/t/bug-rt-78272.t
+++ b/t/bug-rt-78272.t
@@ -1,33 +1,39 @@
use strict;
use warnings;
use Test::More tests => 1;
-use Test::Exception;
+use Test::Fatal;
subtest 'Bug RT-78272: Arbitrary code execution from $ENV' => sub {
# https://rt.cpan.org/Public/Bug/Display.html?id=78272
my $e = $ENV{PACKAGE_STASH_IMPLEMENTATION} = "PP; exit 1";
- throws_ok {
- require Package::Stash;
- }
- qr/^Could not load Package::Stash::$e/,
- 'Arbitrary code in $ENV throws exception';
- throws_ok {
- delete $INC{'Package/Stash.pm'};
- require Package::Stash;
- }
- qr/^Could not load Package::Stash::$e/,
- 'Sanity check: forcing package reload throws the exception again';
+ like(
+ exception { require Package::Stash },
+ qr/^Could not load Package::Stash::$e/,
+ 'Arbitrary code in $ENV throws exception'
+ );
- lives_ok {
- $ENV{PACKAGE_STASH_IMPLEMENTATION} = "PP";
- delete $INC{'Package/Stash.pm'};
- require Package::Stash;
- new_ok(
- 'Package::Stash' => ['Foo'],
- 'Loaded and able to create instances'
- );
- }
- 'Valid $ENV value loads correctly';
+ like(
+ exception {
+ delete $INC{'Package/Stash.pm'};
+ require Package::Stash;
+ },
+ qr/^Could not load Package::Stash::$e/,
+ 'Sanity check: forcing package reload throws the exception again'
+ );
+
+ is(
+ exception {
+ $ENV{PACKAGE_STASH_IMPLEMENTATION} = "PP";
+ delete $INC{'Package/Stash.pm'};
+ require Package::Stash;
+ new_ok(
+ 'Package::Stash' => ['Foo'],
+ 'Loaded and able to create instances'
+ );
+ },
+ undef,
+ 'Valid $ENV value loads correctly'
+ );
};