Subject: | Find gearmand and perl instance using Config. |
Hello and thanks for Gearman::Client::Async,
If anyone else is using a non system Perl installation and still has
their env set to use the system installation that is missing
dependencies needed to test (gearmand), then this patch might help.
It finds gearmand by using the Config{'installscript'} of the instance
of Perl running (this is where gearmand'd Makefile.PL will install
EXE_FILES). It also runs the child processes using the instance of
perl running.
Cheers,
Peter (Stig) Edwards
==== Gearman-Client-Async-0.93/t/lib/testlib.pl#1 -
Gearman-Client-Async-0.93/t/lib/testlib.pl ====
@@ -17,6 +17,7 @@
use POSIX qw( :sys_wait_h );
use List::Util qw(first);;
use IO::Socket::INET;
+use Config;
Danga::Socket->SetLoopTimeout(100);
@@ -30,6 +31,7 @@
"$Bin/../../../../../server/gearmand", # using svn, with
disttest
'/usr/bin/gearmand', # where some distros
might put it
'/usr/sbin/gearmand', # where other distros
might put it
+ File::Spec->catfile($Config{'installscript'},'gearmand'),
);
my $server = first { -e $_ } @loc
or return 0;
@@ -53,10 +55,11 @@
sub start_child {
my($cmd) = @_;
+ my $perl = $Config{'perlpath'};
my $pid = fork();
die $! unless defined $pid;
unless ($pid) {
- exec 'perl', '-Iblib/lib', '-Ilib', @$cmd or die $!;
+ exec $perl, '-Iblib/lib', '-Ilib', @$cmd or die $!;
}
$pid;
}