Merge branch 'topic/taint'
[p5sagit/local-lib.git] / t / taint-mode.t
CommitLineData
24351831 1#
2# t/taint-mode.t: checks that local::lib sets up @INC correctly when
3# included in a script that has taint mode on, and is executing in an
4# environment in which local::lib has already been loaded.
5#
6
7use strict;
8use warnings;
9use Test::More;
10use File::Temp qw(tempdir tempfile);
11use Cwd;
12
13plan tests => 1;
14
15# Setup temp dir to serve as local lib
16my $dir1 = tempdir('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), CLEANUP => 1);
17
18# Set up local::lib environment using our temp dir
19require local::lib;
20local::lib->import($dir1);
21
22# Create a script that has taint mode turned on, and tries to use a
23# local lib to the same temp dir.
24my ($fh, $filename) = tempfile('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), UNLINK => 1);
25
26print $fh <<EOM;
27#!/usr/bin/perl -T
28use strict; use warnings;
29use local::lib '$dir1';
30my \$dir1 = "$dir1";
31if (grep { \$_ =~ m{^\$dir1/} } \@INC) {
32 exit 0;
33}
34exit 1
35EOM
36close $fh;
37
38my $exit_val = system($^X, '-Ilib', '-T', $filename);
39
40is($exit_val >> 8, 0, 'test script exited with 0, local::lib dir found in @INC');