CPANPLUS beginning with 0.89_06(?) has a toolchain stanza
[cpan-testers-parsereport.git] / t / ctgetreports.t
blobcd18831b06969935730d6588c8be35782c0fbadc
1 #!perl -- -*- mode: cperl -*-
3 use strict;
4 use Test::More;
5 use File::Spec;
6 use CPAN::Testers::ParseReport;
7 use List::Util qw(sum);
8 use YAML::Syck;
10 my $plan;
13     BEGIN { $plan += 1 }
14     open my $fh, "<", qq{t/var/nntp-testers/1581994} or die "could not open: $!";
15     local $/;
16     my $article = <$fh>;
17     close $fh;
18     my $dump = {};
19     CPAN::Testers::ParseReport::parse_report(1234567, $dump, article => $article, solve => 1, quiet => 1);
20     my $keys = keys %{$dump->{"==DATA=="}[0]};
21     ok($keys >= 39, "found at least 39, actually [$keys] keys");
25     BEGIN {
26         $plan += 6;
27     }
28     my %Opt = (
29                'q' => ["meta:perl", "meta:from", "qr:(Undefined.*)", "prereq:Test::More"],
30                'local' => 1,
31                'cachedir' => 't/var',
32                'quiet' => 1,
33                'dumpvars' => ".",
34               );
35     CPAN::Testers::ParseReport::parse_distro
36           (
37            "Scriptalicious",
38            %Opt,
39           );
40     my $Y = YAML::Syck::LoadFile("ctgetreports.out");
41     my $count = sum map {values %{$Y->{"meta:from"}{$_}}} keys %{$Y->{"meta:from"}};
42     is($count, 130, "found $count==130 reports via meta:from");
43     is($Y->{"meta:ok"}{PASS}{PASS}, 79, "found 79 PASS");
44     is($Y->{"prereq:Test::More"}{0}{PASS}, 70, "found 70 PASS on prereq Test::More==0");
45     ok(!$Y->{"env:alignbytes"}, "there is no such thing as an environment alignbytes");
46     my $undefined = $Y->{'qr:(Undefined.*)'};
47     my($the_warning) = grep {length} keys %$undefined;
48     ok($undefined,"found warning: '$the_warning'");
49     like($the_warning, qr/&main::/, "the ampersand is escaped");
53     BEGIN {
54         $plan += 3;
55     }
56     my %Opt = (
57                'q' => ["meta:perl", "meta:from", "conf:git_commit_id", "env:PERL5_MINISMOKEBOX"],
58                'local' => 1,
59                'cachedir' => 't/var',
60                'quiet' => 1,
61                'dumpvars' => ".",
62                'report' => '3521214',
63               );
64     my $dumpvars = {};
65     my $extract = CPAN::Testers::ParseReport::parse_report
66           (
67            "t/var/nntp-testers/3521214",
68            $dumpvars,
69            %Opt,
70           );
71     is $extract->{'conf:git_commit_id'}, '245490700bb744b58c708516d2d3c08f18583dc3', "found git commit id";
72     is $extract->{'env:AUTOMATED_TESTING'}, '1', "automated testing was set";
73     is $extract->{'meta:date'}, '2009-03-20T03:29:23', "date in iso format";
77     BEGIN {
78         $plan += 3;
79     }
80     my %Opt = (
81                'q' => ["meta:perl", "meta:from", "mod:Storable", "env:AUTOMATED_TESTING"],
82                'local' => 1,
83                'cachedir' => 't/var',
84                'quiet' => 1,
85                'dumpvars' => ".",
86                'report' => '3851138',
87               );
88     my $dumpvars = {};
89     my $extract = CPAN::Testers::ParseReport::parse_report
90           (
91            "t/var/nntp-testers/3851138",
92            $dumpvars,
93            %Opt,
94           );
95     like $extract->{'conf:archname'}, qr/64int/, "found 64int on archname";
96     is $extract->{'env:AUTOMATED_TESTING'}, '1', "automated testing was set";
97     is $extract->{'mod:Storable'}, '2.18', "Storable version";
101     BEGIN {
102         $plan += 3;
103     }
104     my %Opt = (
105                'q' => ["conf:nvsize", "conf:uselongdouble"],
106                'local' => 1,
107                'cachedir' => 't/var',
108                'quiet' => 1,
109                'dumpvars' => ".",
110                'report' => '5698506',
111               );
112     my $dumpvars = {};
113     my $extract = CPAN::Testers::ParseReport::parse_report
114           (
115            "t/var/nntp-testers/5698506",
116            $dumpvars,
117            %Opt,
118           );
119     is $extract->{'conf:nvsize'}, 16, "found 16 on nvsize";
120     is $extract->{'conf:uselongdouble'}, 'define', "found uselongdouble";
121     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.55_02', "makemaker version";
125     BEGIN {
126         $plan += 3;
127     }
128     my $id = 5012315;
129     my %Opt = (
130                'q' => ["conf:nvsize", "conf:uselongdouble"],
131                'local' => 1,
132                'cachedir' => 't/var',
133                'quiet' => 1,
134                'dumpvars' => ".",
135                'report' => $id,
136               );
137     my $dumpvars = {};
138     my $extract = CPAN::Testers::ParseReport::parse_report
139           (
140            "t/var/nntp-testers/$id",
141            $dumpvars,
142            %Opt,
143           );
144     is $extract->{'conf:nvsize'}, 8, "found 8 on nvsize";
145     is $extract->{'conf:uselongdouble'}, 'undef', "found uselongdouble";
146     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "makemaker version";
150     BEGIN { $plan += 1 }
151     open my $fh, "-|", qq{"$^X" "-Ilib" "bin/ctgetreports" "--local" "--cachedir" "t/var" "--solve" "--quiet" "Scriptalicious" 2>&1} or die "could not fork: $!";
152     my @reg;
153     while (<$fh>) {
154         push @reg, $1 if /^Regression '(.+)'/;
155     }
156     is "@reg", "meta:writer mod:Test::Harness id", "found the top 3 candidates";
158 # Up to 0.0.15:
160 # State after regression testing: 68 results, showing top 3
162 # (1)
163 # ****************************************************************
164 # Regression 'mod:Test::Harness'
165 # ****************************************************************
166 # Name                         Theta          StdErr     T-stat
167 # [0='const']                 1.0000          0.1021       9.80
168 # [1='eq_2.64']              -0.3846          0.1328      -2.90
169 # [2='eq_3.09']               0.0000          0.3228       0.00
170 # [3='eq_3.10']              -0.0200          0.1109      -0.18
171 # [4='eq_3.11']              -0.0000          0.2042      -0.00
172 # [5='eq_3.12']              -0.7143          0.1309      -5.46
173 # [6='eq_3.13']              -0.8696          0.1204      -7.22
174 # [7='eq_3.14']              -0.8667          0.1291      -6.71
176 # R^2= 0.628, N= 128, K= 8
177 # ****************************************************************
178 # (2)
179 # ****************************************************************
180 # Regression 'id'
181 # ****************************************************************
182 # Name                         Theta          StdErr     T-stat
183 # [0='const']                 2.4992          0.1514      16.51
184 # [1='n_id']                 -0.0000          0.0000     -12.66
186 # R^2= 0.560, N= 128, K= 2
187 # ****************************************************************
188 # (3)
189 # ****************************************************************
190 # Regression 'meta:date'
191 # ****************************************************************
192 # Name                         Theta          StdErr     T-stat
193 # [0='const']                93.9116          7.3952      12.70
194 # [1='n_meta:date']          -0.0000          0.0000     -12.62
196 # R^2= 0.558, N= 128, K= 2
197 # ****************************************************************
199 # From 0.0.16:
201 # State after regression testing: 110 results, showing top 3
203 # (1)
204 # ****************************************************************
205 # Regression 'meta:writer'
206 # ****************************************************************
207 # Name                         Theta          StdErr     T-stat
208 # [0='const']                 0.8929          0.0509      17.54
209 # [1='eq_CPAN-Reporter-1.1404']       0.1071          0.0992       1.08
210 # [2='eq_CPAN-Reporter-1.15']         0.1071          0.0720       1.49
211 # [3='eq_CPAN-Reporter-1.1556']      -0.8929          0.1440      -6.20
212 # [4='eq_CPAN-Reporter-1.16']        -0.8929          0.2741      -3.26
213 # [5='eq_CPAN-Reporter-1.1601']      -0.6929          0.1308      -5.30
214 # [6='eq_CPAN-Reporter-1.1651']      -0.7679          0.0844      -9.10
215 # [7='eq_CPAN-Reporter-1.17']        -0.6706          0.1032      -6.50
216 # [8='eq_CPAN-Reporter-1.1702']      -0.7817          0.0814      -9.61
217 # [9='eq_CPAN::YACSmoke 0.0307']              0.1071          0.1032       1.04
219 # R^2= 0.717, N= 128, K= 10
220 # ****************************************************************
221 # (2)
222 # ****************************************************************
223 # Regression 'mod:Test::Harness'
224 # ****************************************************************
225 # Name                         Theta          StdErr     T-stat
226 # [0='const']                 1.0000          0.1021       9.80
227 # [1='eq_2.64']              -0.3846          0.1328      -2.90
228 # [2='eq_3.09']               0.0000          0.3228       0.00
229 # [3='eq_3.10']              -0.0200          0.1109      -0.18
230 # [4='eq_3.11']              -0.0000          0.2042      -0.00
231 # [5='eq_3.12']              -0.7143          0.1309      -5.46
232 # [6='eq_3.13']              -0.8696          0.1204      -7.22
233 # [7='eq_3.14']              -0.8667          0.1291      -6.71
235 # R^2= 0.628, N= 128, K= 8
236 # ****************************************************************
237 # (3)
238 # ****************************************************************
239 # Regression 'id'
240 # ****************************************************************
241 # Name                         Theta          StdErr     T-stat
242 # [0='const']                 2.4992          0.1514      16.51
243 # [1='n_id']                 -0.0000          0.0000     -12.66
245 # R^2= 0.560, N= 128, K= 2
246 # ****************************************************************
252     BEGIN {
253         $plan += 8;
254     }
255     my $id = 5834678;
256     my %Opt = (
257                'q' => ["conf:nvsize", "conf:uselongdouble"],
258                'local' => 1,
259                'cachedir' => 't/var',
260                'quiet' => 1,
261                'dumpvars' => ".",
262                'report' => $id,
263               );
264     my $dumpvars = {};
265     my $extract = CPAN::Testers::ParseReport::parse_report
266           (
267            "t/var/nntp-testers/$id",
268            $dumpvars,
269            %Opt,
270           );
271     is $extract->{'conf:nvsize'}, 8, "report $id: found 8 on nvsize";
272     is $extract->{'conf:uselongdouble'}, 'undef', "report $id: found uselongdouble";
273     is $extract->{'mod:l module toolchain versions in'}, undef, "report $id: C:T:PR 0.1.6 had a bug against cpanplus 0.89_06";
274     is $extract->{'mod:CPANPLUS'}, '0.89_06', "report $id: CPANPLUS version";
275     is $extract->{'mod:Cwd'}, '3.2501', "report $id: Cwd version";
276     is $extract->{'mod:File::Spec'}, '3.2501', "report $id: File::Spec version";
277     is $extract->{'mod:version'}, '0.7701', "report $id: version version";
278     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "report $id: ExtUtils::MakeMaker version";
281 unlink "ctgetreports.out";
283 BEGIN {
284       plan tests => $plan;
287 __END__
289 # Local Variables:
290 # mode: cperl
291 # cperl-indent-level: 4
292 # End: