|
Packit |
f4e178 |
# -*- cperl -*-
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
use strict;
|
|
Packit |
f4e178 |
use warnings;
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
use Test::More;
|
|
Packit |
f4e178 |
use Config::AutoConf;
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
END
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
foreach my $f (<config*.*>)
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
-e $f and unlink $f;
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
my $ac_1;
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
ok($ac_1 = Config::AutoConf->new(logfile => "config3.log"), "Instantiating Config::AutoConf for check_lib() tests");
|
|
Packit |
f4e178 |
ok($ac_1->check_header("stdio.h")) or plan skip_all => "No working compile environment";
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
ok($ac_1->check_func("printf"), "Every system should have a printf");
|
|
Packit |
f4e178 |
my $set_me;
|
|
Packit |
f4e178 |
$ac_1->check_func(
|
|
Packit |
f4e178 |
"scanf",
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
action_on_true => sub { $set_me = 1 },
|
|
Packit |
f4e178 |
action_on_false => sub { $set_me = 0 }
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
);
|
|
Packit |
f4e178 |
ok(defined $set_me, "Having scanf or not, but now we know");
|
|
Packit |
f4e178 |
ok($ac_1->check_funcs([qw(sprintf sscanf)]), "Every system should have sprintf and sscanf");
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
TODO:
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
local $TODO = "It seems some Windows machine doesn't have -lm" if $^O eq "MSWin32";
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
## OK, we really hope people have -lm around
|
|
Packit |
f4e178 |
ok(!$ac_1->check_lib("m", "foobar"), "foobar() not in -lm");
|
|
Packit |
f4e178 |
ok($ac_1->check_lib("m", "atan"), "atan() in -lm");
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
my ($where_atan, $ac_2);
|
|
Packit |
f4e178 |
ok($ac_2 = Config::AutoConf->new(logfile => "config4.log"), "Instantiating Config::AutoConf for search_libs() tests");
|
|
Packit |
f4e178 |
ok($where_atan = $ac_2->search_libs("atan", [qw(m)]), "searching lib for atan()");
|
|
Packit |
f4e178 |
isnt($where_atan, 0, "library for atan() found (or none required)");
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
TODO:
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
local $TODO = "__builtin_\$1 isn't supported overall - sane prove would need compiler detection";
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
ok($ac_1->check_builtin("expect"), "__buitin_expect available");
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
my ($ac_3, %math_funcs);
|
|
Packit |
f4e178 |
ok($ac_3 = Config::AutoConf->new(logfile => "config4_2.log"), "Instantiating Config::AutoConf for check_lm() tests");
|
|
Packit |
f4e178 |
$ac_3->check_lm(
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
action_on_func_lib_true => sub { my ($func, $lib, @extra) = @_; $math_funcs{$func} = $lib },
|
|
Packit |
f4e178 |
action_on_func_lib_false => sub { my ($func, $lib, @extra) = @_; $math_funcs{$func} = 0 },
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
);
|
|
Packit |
f4e178 |
is_deeply(
|
|
Packit |
f4e178 |
[sort keys %math_funcs],
|
|
Packit |
f4e178 |
[sort $ac_3->_check_lm_funcs],
|
|
Packit |
f4e178 |
"Math functions (" . join(", ", $ac_3->_check_lm_funcs) . ") tested for -lm"
|
|
Packit |
f4e178 |
);
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
eval {
|
|
Packit |
f4e178 |
$ac_3->check_lm(
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
action_on_lib_true => sub { },
|
|
Packit |
f4e178 |
action_on_func_lib_true => sub { },
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
);
|
|
Packit |
f4e178 |
};
|
|
Packit |
f4e178 |
ok($@, "action_on_lib_true and action_on_func_lib_true cannot be used together");
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
eval {
|
|
Packit |
f4e178 |
$ac_3->check_lm(
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
action_on_lib_false => sub { },
|
|
Packit |
f4e178 |
action_on_func_lib_false => sub { },
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
);
|
|
Packit |
f4e178 |
};
|
|
Packit |
f4e178 |
ok($@, "action_on_lib_false and action_on_func_lib_false cannot be used together");
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
TODO:
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
-f "META.yml" or $ENV{AUTOMATED_TESTING} = 1;
|
|
Packit |
f4e178 |
local $TODO = "Quick fix: TODO - analyse diag later" unless $ENV{AUTOMATED_TESTING};
|
|
Packit |
f4e178 |
my ($fh, $fbuf, $dbuf, @old_logfh);
|
|
Packit |
f4e178 |
$dbuf = "";
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
if ($] < 5.008)
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
require IO::String;
|
|
Packit |
f4e178 |
$fh = IO::String->new($dbuf);
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
else
|
|
Packit |
f4e178 |
{
|
|
Packit |
f4e178 |
open($fh, "+>", \$dbuf);
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
@old_logfh = @{$ac_1->{logfh}};
|
|
Packit |
f4e178 |
$ac_1->add_log_fh($fh);
|
|
Packit |
f4e178 |
cmp_ok(scalar @{$ac_1->{logfh}}, "==", 2, "Successfully added 2nd loghandle");
|
|
Packit |
f4e178 |
ok($ac_1->check_link_perlapi(), "Could link perl extensions") or diag($dbuf);
|
|
Packit |
f4e178 |
scalar @old_logfh and $ac_1->delete_log_fh($fh);
|
|
Packit |
f4e178 |
scalar @old_logfh and is_deeply(\@old_logfh, $ac_1->{logfh}, "add_log_fh/delete_log_fh");
|
|
Packit |
f4e178 |
defined $fh and close($fh);
|
|
Packit |
f4e178 |
$fh = undef;
|
|
Packit |
f4e178 |
}
|
|
Packit |
f4e178 |
|
|
Packit |
f4e178 |
done_testing;
|