8 use Test::More tests => 4;
13 my $filename = '/tmp/run_perl_test';
15 my $code = "open my \$fh, q[>], q[$filename] or die \$!; for my \$key (sort keys %ENV) { print \$fh qq[\$key:\$ENV{\$key}\n] } close \$fh";
17 my $ld_path = $Config::Config{ldlibpthname};
20 'MSWin32' => [ qw<SystemRoot> ],
21 'android' => [ $ld_path ],
22 'cygwin' => [ qw<PATH> ],
28 grep !$uniq{$_}++, map @$_, values %expected_vars;
30 push @all_vars, 'DUMMY';
32 my @ignored_vars = qw<
33 VERSIONER_PERL_PREFER_32_BIT
34 VERSIONER_PERL_VERSION
35 __CF_USER_TEXT_ENCODING
38 for my $os (qw<MSWin32 android cygwin linux>) {
39 1 while unlink $filename;
44 @ENV{@all_vars} = @all_vars;
50 open my $fh, '<', $filename;
55 %subprocess_env = map { split /:/, $_, 2 } @lines;
58 delete @subprocess_env{@ignored_vars};
60 my $got = join "\n", sort keys %subprocess_env;
61 my $exp = join "\n", sort @{ $expected_vars{$os} || [] };
63 is $got, $exp, "run_perl preserving $os ENV vars";