This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update ExtUtils::CBuilder to version 0.280219. Correct one test.
[perl5.git] / dist / ExtUtils-CBuilder / t / 00-have-compiler.t
1 #! perl -w
2
3 use File::Spec;
4 my $perl;
5 BEGIN {
6   $perl = File::Spec->rel2abs($^X);
7   $perl = qq{"$perl"}; # So it doesn't fail when there are spaces.
8 }
9
10 use strict;
11 use Test::More;
12 BEGIN { 
13   if ($^O eq 'VMS') {
14     # So we can get the return value of system()
15     require vmsish;
16     import vmsish;
17   }
18 }
19
20 plan tests => 7;
21
22 require_ok "ExtUtils::CBuilder";
23
24 my $b = eval { ExtUtils::CBuilder->new(quiet => 1) };
25 ok( $b, "got CBuilder object" ) or diag $@;
26
27 # test missing compiler
28 {
29 my $b1 = ExtUtils::CBuilder->new(quiet => 1);
30 configure_fake_missing_compilers($b1);
31 is( $b1->have_compiler, 0, "have_compiler: fake missing cc" );
32 }
33 {
34 my $b2 = ExtUtils::CBuilder->new(quiet => 1);
35 configure_fake_missing_compilers($b2);
36 is( $b2->have_cplusplus, 0, "have_cplusplus: fake missing c++" );
37 }
38
39 # test found compiler
40 {
41 my $b3 = ExtUtils::CBuilder->new(quiet => 1);
42 configure_fake_present_compilers($b3);
43 is( $b3->have_compiler, 1, "have_compiler: fake present cc" );
44 }
45 {
46 my $b4 = ExtUtils::CBuilder->new(quiet => 1);
47 configure_fake_present_compilers($b4);
48 is( $b4->have_cplusplus, 1, "have_cpp_compiler: fake present c++" );
49 }
50
51 # test missing cpp compiler
52
53 # test one non-exported subroutine
54 {
55     my $type = ExtUtils::CBuilder::os_type();
56     if ($type) {
57         pass( "OS type $type located for $^O" );
58     }
59     else {
60         pass( "OS type not yet listed for $^O" );
61     }
62 }
63
64 sub configure_fake_missing_compilers {
65     my $b = shift;
66     my $bogus_path = 'djaadjfkadjkfajdf';
67     $b->{config}{cc} = $bogus_path;
68     $b->{config}{ld} = $bogus_path;
69     $b->{have_cc} = undef;
70     $b->{have_cxx} = undef;
71 }
72
73 sub configure_fake_present_compilers {
74     my $b = shift;
75     my $run_perl = "$perl -e1 --";
76     $b->{config}{cc} = $run_perl;
77     $b->{config}{ld} = $run_perl;
78     $b->{config}{cxx} = $run_perl;
79     $b->{have_cc} = undef;
80     $b->{have_cxx} = undef;
81 }