Alien-Build

 view release on metacpan or  search on metacpan

t/alien_build_plugin_pkgconfig_libpkgconf.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::LibPkgConf;
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} = '';

sub build
{
  my $build = alienfile filename => 'corpus/blank/alienfile';
  my $meta = $build->meta;
  my $plugin = Alien::Build::Plugin::PkgConfig::LibPkgConf->new(@_);
  $plugin->init($meta);
  ($build, $meta, $plugin);
}

skip_all 'Test requires PkgConfig::LibPkgConf'
  unless eval {
    my($build, $meta, $plugin) = build(pkg_name => 'foo', minimum_version => 1);
    $build->load_requires('configure');
  };

subtest 'available' => sub {

  local $INC{'PkgConfig/LibPkgConf.pm'} = __FILE__;

  subtest 'new enough' => sub {
    local $PkgConfig::LibPkgConf::VERSION = '0.04';
    is(Alien::Build::Plugin::PkgConfig::LibPkgConf->available, T());
  };

  subtest 'too old!' => sub {
    local $PkgConfig::VERSION = '0.03';
    is(Alien::Build::Plugin::PkgConfig::LibPkgConf->available, F());
  };

};

ok $INC{'PkgConfig/LibPkgConf/Client.pm'}, 'Loaded PkgConfig::LibPkgConf::Client';
note "inc=$INC{'PkgConfig/LibPkgConf/Client.pm'}";
ok $INC{'PkgConfig/LibPkgConf/Util.pm'}, 'Loaded PkgConfig::LibPkgConf::Util';
note "inc=$INC{'PkgConfig/LibPkgConf/Util.pm'}";

note "PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH}";

subtest 'system not available' => sub {

  my($build, $meta, $plugin) = build('bogus');

  my($out, $type) = capture_merged { $build->probe };
  note $out;

  is( $type, 'share' );

};

subtest 'version requirements' => sub {

  subtest 'atleast_version or minimum_version' => sub {



( run in 2.734 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )