]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/blobdiff - lib/VPIT/TestHelpers.pm
Factor the exporting logic into a new export_to_pkg() helper
[perl/modules/VPIT-TestHelpers.git] / lib / VPIT / TestHelpers.pm
index 30c6bc02c5a841742397efd3f06de4440b753c46..023a87383949f872492cc295c402c2a779a0f7c2 100644 (file)
@@ -3,6 +3,19 @@ package VPIT::TestHelpers;
 use strict;
 use warnings;
 
+use Config ();
+
+sub export_to_pkg {
+ my ($subs, $pkg) = @_;
+
+ while (my ($name, $code) = each %$subs) {
+  no strict 'refs';
+  *{$pkg.'::'.$name} = $code;
+ }
+
+ return 1;
+}
+
 my %exports = (
  load_or_skip     => \&load_or_skip,
  load_or_skip_all => \&load_or_skip_all,
@@ -13,10 +26,7 @@ my %exports = (
 sub import {
  my $pkg = caller;
 
- while (my ($name, $code) = each %exports) {
-  no strict 'refs';
-  *{$pkg.'::'.$name} = $code;
- }
+ export_to_pkg \%exports => $pkg;
 }
 
 my $test_sub = sub {
@@ -107,7 +117,11 @@ sub run_perl {
  my $code = shift;
 
  my ($SystemRoot, $PATH) = @ENV{qw<SystemRoot PATH>};
+ my $ld_name  = $Config::Config{ldlibpthname};
+ my $ldlibpth = $ENV{$ld_name};
+
  local %ENV;
+ $ENV{$ld_name}   = $ldlibpth   if                      defined $ldlibpth;
  $ENV{SystemRoot} = $SystemRoot if $^O eq 'MSWin32' and defined $SystemRoot;
  $ENV{PATH}       = $PATH       if $^O eq 'cygwin'  and defined $PATH;