summaryrefslogtreecommitdiff
path: root/lib/ExtUtils/t/xs.t
blob: 398b84ae8f9e875477dbb4a40bcd1192670b27db (plain)
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
#!/usr/bin/perl -w

BEGIN {
    if( $ENV{PERL_CORE} ) {
        chdir 't';
        @INC = ('../lib', 'lib/');
    }
    else {
        unshift @INC, 't/lib/';
    }
}
chdir 't';

use strict;

use Test::More;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::XS;
use File::Find;
use File::Spec;
use File::Path;

my $Skipped = 0;
if( have_compiler() ) {
    plan tests => 5;
}
else {
    $Skipped = 1;
    plan skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler";
}

my $Is_VMS = $^O eq 'VMS';
my $perl = which_perl();

# GNV logical interferes with testing
$ENV{'bin'} = '[.bin]' if $Is_VMS;

chdir 't';

perl_lib;

$| = 1;

ok( setup_xs(), 'setup' );
END {
    unless( $Skipped ) {
        chdir File::Spec->updir or die;
        teardown_xs(), 'teardown' or die;
    }
}

ok( chdir('XS-Test'), "chdir'd to XS-Test" ) ||
  diag("chdir failed: $!");

my @mpl_out = run(qq{$perl Makefile.PL});

cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
  diag(@mpl_out);

my $make = make_run();
my $make_out = run("$make");
is( $?, 0,                                 '  make exited normally' ) || 
    diag $make_out;

my $test_out = run("$make");
is( $?, 0,                                 '  make test exited normally' ) || 
    diag $test_out;