1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
use 5.008004;
use Test2::V0 -no_srand => 1;
use Test::Alien::Build;
use Alien::Build::Plugin::Probe::CBuilder;
use Capture::Tiny qw( capture_merged );
skip_all 'CI only' unless defined $ENV{CIPSOMETHING} && $ENV{CIPSOMETHING} eq 'true';
subtest 'live test' => sub {
require ExtUtils::CBuilder;
my $build = alienfile_ok q{
use alienfile;
plugin 'Probe::CBuilder' => (
cflags => '-I/usr/local/include ',
libs => '-L/usr/local/lib ',
);
};
alien_build_ok;
alien_install_type_is 'system';
is(
$build->runtime_prop,
hash {
field cflags => '-I/usr/local/include ';
field libs => '-L/usr/local/lib ';
etc;
},
);
};
alien_subtest 'multiple probes' => sub {
require ExtUtils::CBuilder;
my $build = alienfile_ok q{
use alienfile;
plugin 'Probe::CBuilder' => (
cflags => '-I/usr/local/include ',
libs => '-L/usr/local/lib ',
);
probe sub { 'system' };
my $count = 0;
meta->around_hook(probe => sub {
my $orig = shift;
my $build = shift;
my $type = $orig->($build, @_);
if($count++ == 0)
{
Test2::V0::note("first convert $type to share");
return 'share';
}
else
{
Test2::V0::note("finally return $type");
return $type;
}
});
};
alien_install_type_is 'system';
alien_build_ok;
is(
$build->runtime_prop,
hash {
field cflags => DNE();
field libs => DNE();
etc;
},
);
};
done_testing;
|