Alien-Build
view release on metacpan or search on metacpan
t/alien_build_plugin_pkgconfig_commandline.t view on Meta::CPAN
use 5.008004;
use Test2::V0 -no_srand => 1;
use lib 'corpus/lib';
use Test::Alien::Build;
use Alien::Build::Plugin::PkgConfig::CommandLine;
use Path::Tiny qw( path );
use Capture::Tiny qw( capture_merged );
$ENV{PKG_CONFIG_PATH} = path('corpus/lib/pkgconfig')->absolute->stringify;
$ENV{PKG_CONFIG_LIBDIR} = '';
my $bin_name = Alien::Build::Plugin::PkgConfig::CommandLine->new('foo')->bin_name;
skip_all 'test requires pkgconf or pkg-config' unless $bin_name;
skip_all 'use PkgConfig::PP on windows' if $^O eq 'MSWin32' && !$ENV{ALIEN_BUILD_PLUGIN_PKGCONFIG_COMMANDLINE_TEST};
ok $bin_name, 'has bin_name';
note "it be $bin_name";
note "PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH}";
my $prefix = '/test';
sub build
{
my $build = alienfile filename => 'corpus/blank/alienfile';
my $meta = $build->meta;
my $plugin = Alien::Build::Plugin::PkgConfig::CommandLine->new(@_);
$plugin->init($meta);
($build, $meta, $plugin);
}
subtest 'available' => sub {
my %which;
require File::Which;
my $mock = mock 'File::Which' => (
override => [
which => sub {
my($prog) = @_;
defined $prog ? $which{$prog} : ();
},
],
);
subtest 'no command line' => sub {
%which = ();
is(
Alien::Build::Plugin::PkgConfig::CommandLine->available,
F(),
);
};
subtest 'pkg-config' => sub {
%which = ( 'pkg-config' => '/usr/bin/pkg-config' );
is(
Alien::Build::Plugin::PkgConfig::CommandLine->available,
T(),
( run in 0.751 second using v1.01-cache-2.11-cpan-788537b7465 )