summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--t/bug-rt-78272.t39
-rw-r--r--t/impl-selection/bug-rt-78272.t39
2 files changed, 39 insertions, 39 deletions
diff --git a/t/bug-rt-78272.t b/t/bug-rt-78272.t
deleted file mode 100644
index 0d6099b..0000000
--- a/t/bug-rt-78272.t
+++ /dev/null
@@ -1,39 +0,0 @@
-use strict;
-use warnings;
-use Test::More tests => 1;
-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";
-
- like(
- exception { require Package::Stash },
- qr/$e is not a valid implementation for Package::Stash/,
- 'Arbitrary code in $ENV throws exception'
- );
-
- like(
- exception {
- delete $INC{'Package/Stash.pm'};
- require Package::Stash;
- },
- qr/$e is not a valid implementation for Package::Stash/,
- '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'
- );
-};
diff --git a/t/impl-selection/bug-rt-78272.t b/t/impl-selection/bug-rt-78272.t
new file mode 100644
index 0000000..dc74922
--- /dev/null
+++ b/t/impl-selection/bug-rt-78272.t
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Fatal;
+
+# https://rt.cpan.org/Public/Bug/Display.html?id=78272
+my $e = $ENV{PACKAGE_STASH_IMPLEMENTATION} = "PP; exit 1";
+
+like(
+ exception { require Package::Stash },
+ qr/$e is not a valid implementation for Package::Stash/,
+ 'Arbitrary code in $ENV throws exception'
+);
+
+like(
+ exception {
+ delete $INC{'Package/Stash.pm'};
+ require Package::Stash;
+ },
+ qr/$e is not a valid implementation for Package::Stash/,
+ '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'
+);
+
+done_testing;