This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add Perl::OSType as a dual-life core module
[perl5.git] / cpan / Perl-OSType / t / 00-compile.t
1 #!perl
2 #
3 # This file is part of Perl-OSType
4 #
5 # This software is copyright (c) 2010 by David Golden.
6 #
7 # This is free software; you can redistribute it and/or modify it under
8 # the same terms as the Perl 5 programming language system itself.
9 #
10
11 use strict;
12 use warnings;
13
14 use Test::More;
15 use File::Find;
16 use File::Temp qw{ tempdir };
17
18 my @modules;
19 find(
20   sub {
21     return if $File::Find::name !~ /\.pm\z/;
22     my $found = $File::Find::name;
23     $found =~ s{^lib/}{};
24     $found =~ s{[/\\]}{::}g;
25     $found =~ s/\.pm$//;
26     # nothing to skip
27     push @modules, $found;
28   },
29   'lib',
30 );
31
32 my @scripts = glob "bin/*";
33
34 my $plan = scalar(@modules) + scalar(@scripts);
35 $plan ? (plan tests => $plan) : (plan skip_all => "no tests to run");
36
37 {
38     # fake home for cpan-testers
39      local $ENV{HOME} = tempdir( CLEANUP => 1 );
40
41     like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
42         for sort @modules;
43
44     SKIP: {
45         eval "use Test::Script 1.05; 1;";
46         skip "Test::Script needed to test script compilation", scalar(@scripts) if $@;
47         foreach my $file ( @scripts ) {
48             my $script = $file;
49             $script =~ s!.*/!!;
50             script_compiles( $file, "$script script compiles" );
51         }
52     }
53 }