#!perl use strict; use warnings; use Test::More; plan tests => 1; use Alien::proj; use File::Spec; use IPC::Run3 qw(run3); my $bin = File::Spec->catdir(Alien::proj->dist_dir, 'bin', 'cs2cs'); my $out = ''; eval { run3 [ $bin ], \undef, \$out, \$out; }; my ($eval_err, $os_err, $code) = ($@, $!, $?); my ($status, $signal) = ($code >> 8, $code & 0x7f); if ($code || $os_err && $code == -1 || $eval_err) { diag "cs2cs got an error:"; diag "eval: $eval_err" if $eval_err; diag "\$!: $os_err" if $code == -1 || $code == 0xff00; $code = sprintf "0x%04x (status %d, signal %d)", $code, $status, $signal if $code > 0; diag "\$?: $code" if $code; } my ($version) = $out =~ m/\b(\d+\.\d+(?:\.\d\w*)?)\b/; diag "Alien::proj $Alien::proj::VERSION providing PROJ $version" if $version; # need to run at least one test pass; done_testing;