take perl version from first para if summary is lost
[cpan-testers-parsereport.git] / t / ctgetreports.t
blob85338288893146f2b7c18fb1d6f7a52feaa19868
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 += 4;
79     }
80     my $id = 3851138;
81     my %Opt = (
82                'q' => ["meta:perl", "meta:from", "mod:Storable", "env:AUTOMATED_TESTING"],
83                'local' => 1,
84                'cachedir' => 't/var',
85                'quiet' => 1,
86                'dumpvars' => ".",
87                'report' => $id,
88               );
89     my $dumpvars = {};
90     my $extract = CPAN::Testers::ParseReport::parse_report
91           (
92            "t/var/nntp-testers/3851138",
93            $dumpvars,
94            %Opt,
95           );
96     like $extract->{'conf:archname'}, qr/64int/, "found 64int on archname";
97     is $extract->{'env:AUTOMATED_TESTING'}, '1', "automated testing was set";
98     is $extract->{'mod:Storable'}, '2.18', "Storable version";
99     is $extract->{'meta:date'}, '2009-05-10T01:39:11', "report $id: date";
103     BEGIN {
104         $plan += 4;
105     }
106     my $id = 5698506;
107     my %Opt = (
108                'q' => ["conf:nvsize", "conf:uselongdouble"],
109                'local' => 1,
110                'cachedir' => 't/var',
111                'quiet' => 1,
112                'dumpvars' => ".",
113                'report' => $id,
114               );
115     my $dumpvars = {};
116     my $extract = CPAN::Testers::ParseReport::parse_report
117           (
118            "t/var/nntp-testers/5698506",
119            $dumpvars,
120            %Opt,
121           );
122     is $extract->{'conf:nvsize'}, 16, "found 16 on nvsize";
123     is $extract->{'conf:uselongdouble'}, 'define', "found uselongdouble";
124     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.55_02', "makemaker version";
125     is $extract->{'meta:date'}, '2009-10-21T17:30:27', "report $id: date";
129     BEGIN {
130         $plan += 4;
131     }
132     my $id = 5012315;
133     my %Opt = (
134                'q' => ["conf:nvsize", "conf:uselongdouble"],
135                'local' => 1,
136                'cachedir' => 't/var',
137                'quiet' => 1,
138                'dumpvars' => ".",
139                'report' => $id,
140               );
141     my $dumpvars = {};
142     my $extract = CPAN::Testers::ParseReport::parse_report
143           (
144            "t/var/nntp-testers/$id",
145            $dumpvars,
146            %Opt,
147           );
148     is $extract->{'conf:nvsize'}, 8, "found 8 on nvsize";
149     is $extract->{'conf:uselongdouble'}, 'undef', "found uselongdouble";
150     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "makemaker version";
151     is $extract->{'meta:date'}, '2009-08-14T20:18:57', "report $id: date";
155     BEGIN { $plan += 1 }
156     open my $fh, "-|", qq{"$^X" "-Ilib" "bin/ctgetreports" "--local" "--cachedir" "t/var" "--solve" "--quiet" "Scriptalicious" 2>&1} or die "could not fork: $!";
157     my @reg;
158     while (<$fh>) {
159         push @reg, $1 if /^Regression '(.+)'/;
160     }
161     is "@reg", "meta:writer mod:Test::Harness id", "found the top 3 candidates";
163 # Up to 0.0.15:
165 # State after regression testing: 68 results, showing top 3
167 # (1)
168 # ****************************************************************
169 # Regression 'mod:Test::Harness'
170 # ****************************************************************
171 # Name                         Theta          StdErr     T-stat
172 # [0='const']                 1.0000          0.1021       9.80
173 # [1='eq_2.64']              -0.3846          0.1328      -2.90
174 # [2='eq_3.09']               0.0000          0.3228       0.00
175 # [3='eq_3.10']              -0.0200          0.1109      -0.18
176 # [4='eq_3.11']              -0.0000          0.2042      -0.00
177 # [5='eq_3.12']              -0.7143          0.1309      -5.46
178 # [6='eq_3.13']              -0.8696          0.1204      -7.22
179 # [7='eq_3.14']              -0.8667          0.1291      -6.71
181 # R^2= 0.628, N= 128, K= 8
182 # ****************************************************************
183 # (2)
184 # ****************************************************************
185 # Regression 'id'
186 # ****************************************************************
187 # Name                         Theta          StdErr     T-stat
188 # [0='const']                 2.4992          0.1514      16.51
189 # [1='n_id']                 -0.0000          0.0000     -12.66
191 # R^2= 0.560, N= 128, K= 2
192 # ****************************************************************
193 # (3)
194 # ****************************************************************
195 # Regression 'meta:date'
196 # ****************************************************************
197 # Name                         Theta          StdErr     T-stat
198 # [0='const']                93.9116          7.3952      12.70
199 # [1='n_meta:date']          -0.0000          0.0000     -12.62
201 # R^2= 0.558, N= 128, K= 2
202 # ****************************************************************
204 # From 0.0.16:
206 # State after regression testing: 110 results, showing top 3
208 # (1)
209 # ****************************************************************
210 # Regression 'meta:writer'
211 # ****************************************************************
212 # Name                         Theta          StdErr     T-stat
213 # [0='const']                 0.8929          0.0509      17.54
214 # [1='eq_CPAN-Reporter-1.1404']       0.1071          0.0992       1.08
215 # [2='eq_CPAN-Reporter-1.15']         0.1071          0.0720       1.49
216 # [3='eq_CPAN-Reporter-1.1556']      -0.8929          0.1440      -6.20
217 # [4='eq_CPAN-Reporter-1.16']        -0.8929          0.2741      -3.26
218 # [5='eq_CPAN-Reporter-1.1601']      -0.6929          0.1308      -5.30
219 # [6='eq_CPAN-Reporter-1.1651']      -0.7679          0.0844      -9.10
220 # [7='eq_CPAN-Reporter-1.17']        -0.6706          0.1032      -6.50
221 # [8='eq_CPAN-Reporter-1.1702']      -0.7817          0.0814      -9.61
222 # [9='eq_CPAN::YACSmoke 0.0307']              0.1071          0.1032       1.04
224 # R^2= 0.717, N= 128, K= 10
225 # ****************************************************************
226 # (2)
227 # ****************************************************************
228 # Regression 'mod:Test::Harness'
229 # ****************************************************************
230 # Name                         Theta          StdErr     T-stat
231 # [0='const']                 1.0000          0.1021       9.80
232 # [1='eq_2.64']              -0.3846          0.1328      -2.90
233 # [2='eq_3.09']               0.0000          0.3228       0.00
234 # [3='eq_3.10']              -0.0200          0.1109      -0.18
235 # [4='eq_3.11']              -0.0000          0.2042      -0.00
236 # [5='eq_3.12']              -0.7143          0.1309      -5.46
237 # [6='eq_3.13']              -0.8696          0.1204      -7.22
238 # [7='eq_3.14']              -0.8667          0.1291      -6.71
240 # R^2= 0.628, N= 128, K= 8
241 # ****************************************************************
242 # (3)
243 # ****************************************************************
244 # Regression 'id'
245 # ****************************************************************
246 # Name                         Theta          StdErr     T-stat
247 # [0='const']                 2.4992          0.1514      16.51
248 # [1='n_id']                 -0.0000          0.0000     -12.66
250 # R^2= 0.560, N= 128, K= 2
251 # ****************************************************************
257     BEGIN {
258         $plan += 9;
259     }
260     my $id = 5834678;
261     my %Opt = (
262                'q' => ["conf:nvsize", "conf:uselongdouble"],
263                'local' => 1,
264                'cachedir' => 't/var',
265                'quiet' => 1,
266                'dumpvars' => ".",
267                'report' => $id,
268               );
269     my $dumpvars = {};
270     my $extract = CPAN::Testers::ParseReport::parse_report
271           (
272            "t/var/nntp-testers/$id",
273            $dumpvars,
274            %Opt,
275           );
276     is $extract->{'conf:nvsize'}, 8, "report $id: found 8 on nvsize";
277     is $extract->{'conf:uselongdouble'}, 'undef', "report $id: found uselongdouble";
278     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";
279     is $extract->{'mod:CPANPLUS'}, '0.89_06', "report $id: CPANPLUS version";
280     is $extract->{'mod:Cwd'}, '3.2501', "report $id: Cwd version";
281     is $extract->{'mod:File::Spec'}, '3.2501', "report $id: File::Spec version";
282     is $extract->{'mod:version'}, '0.7701', "report $id: version version";
283     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "report $id: ExtUtils::MakeMaker version";
284     is $extract->{'meta:date'}, '2009-11-01T14:07:11', "report $id: date";
288     BEGIN {
289         $plan += 8;
290     }
291     my $id = 5928865;
292     my %Opt = (
293                'local' => 1,
294                'cachedir' => 't/var',
295                'quiet' => 1,
296                'dumpvars' => ".",
297                'report' => $id,
298               );
299     my $dumpvars = {};
300     my $extract = CPAN::Testers::ParseReport::parse_report
301           (
302            "t/var/nntp-testers/$id",
303            $dumpvars,
304            %Opt,
305           );
306     is $extract->{'mod:Catalyst::Plugin::Session::State::Cookie'}, "0.17", "report $id: C:P:S:S:C version";
307     is $extract->{'mod:Catalyst::Controller::ActionRole'}, "0.12", "report $id: C:C:AR mod version";
308     is $extract->{'prereq:Catalyst::Controller::ActionRole'}, "0.12", "report $id: C:C:AR prereq version";
309     is $extract->{'mod:Moose::Autobox'}, "0.10", "report $id: M:A mod version";
310     is $extract->{'prereq:Moose::Autobox'}, "0.09", "report $id: M:A prereq version";
311     is $extract->{'mod:CPANPLUS'}, '0.89_07', "report $id: CPANPLUS version";
312     is $extract->{'mod:Cwd'}, '3.30', "report $id: Cwd version";
313     is $extract->{'meta:date'}, '2009-11-08T14:48:26', "report $id: date";
317     BEGIN {
318         $plan += 1;
319     }
320     my $id = 2129076;
321     my %Opt = (
322                'local' => 1,
323                'cachedir' => 't/var',
324                'quiet' => 1,
325                'dumpvars' => ".",
326                'report' => $id,
327               );
328     my $dumpvars = {};
329     my $extract = CPAN::Testers::ParseReport::parse_report
330           (
331            "t/var/nntp-testers/$id",
332            $dumpvars,
333            %Opt,
334           );
335     is $extract->{'meta:date'}, '2008-09-02T18:05:00', "report $id: date";
339     BEGIN {
340         $plan += 1;
341     }
342     my $id = 6422067;
343     my %Opt = (
344                'local' => 1,
345                'cachedir' => 't/var',
346                'quiet' => 1,
347                'dumpvars' => ".",
348                'report' => $id,
349                'q' => ['qr:(Failed test\s+\S+.*)'],
350               );
351     my $dumpvars = {};
352     my $extract = CPAN::Testers::ParseReport::parse_report
353           (
354            "t/var/nntp-testers/$id",
355            $dumpvars,
356            %Opt,
357           );
358     is $extract->{'qr:(Failed test\s+\S+.*)'}, q{Failed test 'Pod coverage on App::Pm2Port'}, "report $id: qr...Failed test...";
362     BEGIN {
363         $plan += 1;
364     }
365     my $id = 6115651;
366     my %Opt = (
367                'local' => 1,
368                'cachedir' => 't/var',
369                'quiet' => 1,
370                'dumpvars' => ".",
371                'report' => $id,
372               );
373     my $dumpvars = {};
374     my $extract = CPAN::Testers::ParseReport::parse_report
375           (
376            "t/var/nntp-testers/$id",
377            $dumpvars,
378            %Opt,
379           );
380     is $extract->{'meta:perl'}, q{5.11.2}, "report $id: meta:perl";
383 unlink "ctgetreports.out";
385 BEGIN {
386       plan tests => $plan;
389 __END__
391 # Local Variables:
392 # mode: cperl
393 # cperl-indent-level: 4
394 # End: