-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path00_diag.t
103 lines (82 loc) · 1.6 KB
/
00_diag.t
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
use Test2::V0 -no_srand => 1;
use Config;
eval { require 'Test/More.pm' };
# This .t file is generated.
# make changes instead to dist.ini
my %modules;
my $post_diag;
$modules{$_} = $_ for qw(
Capture::Tiny
Class::Method::Modifiers
ExtUtils::MakeMaker
FFI::Build::File::Base
FFI::Build::File::Library
FFI::Build::Platform
FFI::Platypus
File::ShareDir::Dist
File::ShareDir::Dist::Install
File::chdir
Path::Tiny
Ref::Util
Test2::V0
);
$post_diag = sub {
use Capture::Tiny qw( capture_merged );
diag capture_merged {
system 'go', 'version';
();
};
};
my @modules = sort keys %modules;
sub spacer ()
{
diag '';
diag '';
diag '';
}
pass 'okay';
my $max = 1;
$max = $_ > $max ? $_ : $max for map { length $_ } @modules;
our $format = "%-${max}s %s";
spacer;
my @keys = sort grep /(MOJO|PERL|\A(LC|HARNESS)_|\A(SHELL|LANG)\Z)/i, keys %ENV;
if(@keys > 0)
{
diag "$_=$ENV{$_}" for @keys;
if($ENV{PERL5LIB})
{
spacer;
diag "PERL5LIB path";
diag $_ for split $Config{path_sep}, $ENV{PERL5LIB};
}
elsif($ENV{PERLLIB})
{
spacer;
diag "PERLLIB path";
diag $_ for split $Config{path_sep}, $ENV{PERLLIB};
}
spacer;
}
diag sprintf $format, 'perl', "$] $^O $Config{archname}";
foreach my $module (sort @modules)
{
my $pm = "$module.pm";
$pm =~ s{::}{/}g;
if(eval { require $pm; 1 })
{
my $ver = eval { $module->VERSION };
$ver = 'undef' unless defined $ver;
diag sprintf $format, $module, $ver;
}
else
{
diag sprintf $format, $module, '-';
}
}
if($post_diag)
{
spacer;
$post_diag->();
}
spacer;
done_testing;