Alien-Build

 view release on metacpan or  search on metacpan

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

skip_all 'test requires PkgConfig 0.14026' unless eval { require PkgConfig; PkgConfig->VERSION(0.14026) };

subtest 'available' => sub {

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

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

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

};

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

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 {

    subtest 'old name bad' => sub {

      my($build, $meta, $plugin) = build(
        pkg_name => 'foo',
        minimum_version => '1.2.4',
      );

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



( run in 1.527 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )