fix parsign bug with configure_requires
[cpan-testers-parsereport.git] / t / ctgetreports.t
blobbca2816820f9b11f474e2654d82f8ec8cc2f7a39
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 += 1;
55     }
56     my %Opt = (
57                'q' => ["meta:perl", "meta:from", "prereq:Test::More"],
58                'local' => 1,
59                'cachedir' => 't/var',
60                'quiet' => 1,
61                'dumpvars' => ".",
62                'sample' => 99,
63               );
64     CPAN::Testers::ParseReport::parse_distro
65           (
66            "Scriptalicious",
67            %Opt,
68           );
69     my $Y = YAML::Syck::LoadFile("ctgetreports.out");
70     my $count = sum map {values %{$Y->{"meta:from"}{$_}}} keys %{$Y->{"meta:from"}};
71     is($count, 99, "found $count==99 reports via meta:from");
75     BEGIN {
76         $plan += 1;
77     }
78     my %Opt = (
79                'q' => ["meta:perl", "meta:from", "prereq:Test::More"],
80                'local' => 1,
81                'cachedir' => 't/var',
82                'quiet' => 1,
83                'dumpvars' => ".",
84                'sample' => 999,
85               );
86     CPAN::Testers::ParseReport::parse_distro
87           (
88            "Scriptalicious",
89            %Opt,
90           );
91     my $Y = YAML::Syck::LoadFile("ctgetreports.out");
92     my $count = sum map {values %{$Y->{"meta:from"}{$_}}} keys %{$Y->{"meta:from"}};
93     is($count, 130, "found $count==130 reports via meta:from");
97     BEGIN {
98         $plan += 3;
99     }
100     my %Opt = (
101                'q' => ["meta:perl", "meta:from", "conf:git_commit_id", "env:PERL5_MINISMOKEBOX"],
102                'local' => 1,
103                'cachedir' => 't/var',
104                'quiet' => 1,
105                'dumpvars' => ".",
106                'report' => '3521214',
107               );
108     my $dumpvars = {};
109     my $extract = CPAN::Testers::ParseReport::parse_report
110           (
111            "t/var/nntp-testers/3521214",
112            $dumpvars,
113            %Opt,
114           );
115     is $extract->{'conf:git_commit_id'}, '245490700bb744b58c708516d2d3c08f18583dc3', "found git commit id";
116     is $extract->{'env:AUTOMATED_TESTING'}, '1', "automated testing was set";
117     is $extract->{'meta:date'}, '2009-03-20T03:29:23', "date in iso format";
121     BEGIN {
122         $plan += 4;
123     }
124     my $id = 3851138;
125     my %Opt = (
126                'q' => ["meta:perl", "meta:from", "mod:Storable", "env:AUTOMATED_TESTING"],
127                'local' => 1,
128                'cachedir' => 't/var',
129                'quiet' => 1,
130                'dumpvars' => ".",
131                'report' => $id,
132               );
133     my $dumpvars = {};
134     my $extract = CPAN::Testers::ParseReport::parse_report
135           (
136            "t/var/nntp-testers/3851138",
137            $dumpvars,
138            %Opt,
139           );
140     like $extract->{'conf:archname'}, qr/64int/, "found 64int on archname";
141     is $extract->{'env:AUTOMATED_TESTING'}, '1', "automated testing was set";
142     is $extract->{'mod:Storable'}, '2.18', "Storable version";
143     is $extract->{'meta:date'}, '2009-05-10T01:39:11', "report $id: date";
147     BEGIN {
148         $plan += 4;
149     }
150     my $id = 5698506;
151     my %Opt = (
152                'q' => ["conf:nvsize", "conf:uselongdouble"],
153                'local' => 1,
154                'cachedir' => 't/var',
155                'quiet' => 1,
156                'dumpvars' => ".",
157                'report' => $id,
158               );
159     my $dumpvars = {};
160     my $extract = CPAN::Testers::ParseReport::parse_report
161           (
162            "t/var/nntp-testers/5698506",
163            $dumpvars,
164            %Opt,
165           );
166     is $extract->{'conf:nvsize'}, 16, "found 16 on nvsize";
167     is $extract->{'conf:uselongdouble'}, 'define', "found uselongdouble";
168     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.55_02', "makemaker version";
169     is $extract->{'meta:date'}, '2009-10-21T17:30:27', "report $id: date";
173     BEGIN {
174         $plan += 4;
175     }
176     my $id = 5012315;
177     my %Opt = (
178                'q' => ["conf:nvsize", "conf:uselongdouble"],
179                'local' => 1,
180                'cachedir' => 't/var',
181                'quiet' => 1,
182                'dumpvars' => ".",
183                'report' => $id,
184               );
185     my $dumpvars = {};
186     my $extract = CPAN::Testers::ParseReport::parse_report
187           (
188            "t/var/nntp-testers/$id",
189            $dumpvars,
190            %Opt,
191           );
192     is $extract->{'conf:nvsize'}, 8, "found 8 on nvsize";
193     is $extract->{'conf:uselongdouble'}, 'undef', "found uselongdouble";
194     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "makemaker version";
195     is $extract->{'meta:date'}, '2009-08-14T20:18:57', "report $id: date";
199     BEGIN { $plan += 1 }
200     open my $fh, "-|", qq{"$^X" "-Ilib" "bin/ctgetreports" "--local" "--cachedir" "t/var" "--solve" "--quiet" "Scriptalicious" 2>&1} or die "could not fork: $!";
201     my @reg;
202     while (<$fh>) {
203         push @reg, $1 if /^Regression '(.+)'/;
204     }
205     is "@reg", "meta:writer mod:Test::Harness id", "found the top 3 candidates";
207 # Up to 0.0.15:
209 # State after regression testing: 68 results, showing top 3
211 # (1)
212 # ****************************************************************
213 # Regression 'mod:Test::Harness'
214 # ****************************************************************
215 # Name                         Theta          StdErr     T-stat
216 # [0='const']                 1.0000          0.1021       9.80
217 # [1='eq_2.64']              -0.3846          0.1328      -2.90
218 # [2='eq_3.09']               0.0000          0.3228       0.00
219 # [3='eq_3.10']              -0.0200          0.1109      -0.18
220 # [4='eq_3.11']              -0.0000          0.2042      -0.00
221 # [5='eq_3.12']              -0.7143          0.1309      -5.46
222 # [6='eq_3.13']              -0.8696          0.1204      -7.22
223 # [7='eq_3.14']              -0.8667          0.1291      -6.71
225 # R^2= 0.628, N= 128, K= 8
226 # ****************************************************************
227 # (2)
228 # ****************************************************************
229 # Regression 'id'
230 # ****************************************************************
231 # Name                         Theta          StdErr     T-stat
232 # [0='const']                 2.4992          0.1514      16.51
233 # [1='n_id']                 -0.0000          0.0000     -12.66
235 # R^2= 0.560, N= 128, K= 2
236 # ****************************************************************
237 # (3)
238 # ****************************************************************
239 # Regression 'meta:date'
240 # ****************************************************************
241 # Name                         Theta          StdErr     T-stat
242 # [0='const']                93.9116          7.3952      12.70
243 # [1='n_meta:date']          -0.0000          0.0000     -12.62
245 # R^2= 0.558, N= 128, K= 2
246 # ****************************************************************
248 # From 0.0.16:
250 # State after regression testing: 110 results, showing top 3
252 # (1)
253 # ****************************************************************
254 # Regression 'meta:writer'
255 # ****************************************************************
256 # Name                         Theta          StdErr     T-stat
257 # [0='const']                 0.8929          0.0509      17.54
258 # [1='eq_CPAN-Reporter-1.1404']       0.1071          0.0992       1.08
259 # [2='eq_CPAN-Reporter-1.15']         0.1071          0.0720       1.49
260 # [3='eq_CPAN-Reporter-1.1556']      -0.8929          0.1440      -6.20
261 # [4='eq_CPAN-Reporter-1.16']        -0.8929          0.2741      -3.26
262 # [5='eq_CPAN-Reporter-1.1601']      -0.6929          0.1308      -5.30
263 # [6='eq_CPAN-Reporter-1.1651']      -0.7679          0.0844      -9.10
264 # [7='eq_CPAN-Reporter-1.17']        -0.6706          0.1032      -6.50
265 # [8='eq_CPAN-Reporter-1.1702']      -0.7817          0.0814      -9.61
266 # [9='eq_CPAN::YACSmoke 0.0307']              0.1071          0.1032       1.04
268 # R^2= 0.717, N= 128, K= 10
269 # ****************************************************************
270 # (2)
271 # ****************************************************************
272 # Regression 'mod:Test::Harness'
273 # ****************************************************************
274 # Name                         Theta          StdErr     T-stat
275 # [0='const']                 1.0000          0.1021       9.80
276 # [1='eq_2.64']              -0.3846          0.1328      -2.90
277 # [2='eq_3.09']               0.0000          0.3228       0.00
278 # [3='eq_3.10']              -0.0200          0.1109      -0.18
279 # [4='eq_3.11']              -0.0000          0.2042      -0.00
280 # [5='eq_3.12']              -0.7143          0.1309      -5.46
281 # [6='eq_3.13']              -0.8696          0.1204      -7.22
282 # [7='eq_3.14']              -0.8667          0.1291      -6.71
284 # R^2= 0.628, N= 128, K= 8
285 # ****************************************************************
286 # (3)
287 # ****************************************************************
288 # Regression 'id'
289 # ****************************************************************
290 # Name                         Theta          StdErr     T-stat
291 # [0='const']                 2.4992          0.1514      16.51
292 # [1='n_id']                 -0.0000          0.0000     -12.66
294 # R^2= 0.560, N= 128, K= 2
295 # ****************************************************************
301     BEGIN {
302         $plan += 9;
303     }
304     my $id = 5834678;
305     my %Opt = (
306                'q' => ["conf:nvsize", "conf:uselongdouble"],
307                'local' => 1,
308                'cachedir' => 't/var',
309                'quiet' => 1,
310                'dumpvars' => ".",
311                'report' => $id,
312               );
313     my $dumpvars = {};
314     my $extract = CPAN::Testers::ParseReport::parse_report
315           (
316            "t/var/nntp-testers/$id",
317            $dumpvars,
318            %Opt,
319           );
320     is $extract->{'conf:nvsize'}, 8, "report $id: found 8 on nvsize";
321     is $extract->{'conf:uselongdouble'}, 'undef', "report $id: found uselongdouble";
322     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";
323     is $extract->{'mod:CPANPLUS'}, '0.89_06', "report $id: CPANPLUS version";
324     is $extract->{'mod:Cwd'}, '3.2501', "report $id: Cwd version";
325     is $extract->{'mod:File::Spec'}, '3.2501', "report $id: File::Spec version";
326     is $extract->{'mod:version'}, '0.7701', "report $id: version version";
327     is $extract->{'mod:ExtUtils::MakeMaker'}, '6.54', "report $id: ExtUtils::MakeMaker version";
328     is $extract->{'meta:date'}, '2009-11-01T14:07:11', "report $id: date";
332     BEGIN {
333         $plan += 8;
334     }
335     my $id = 5928865;
336     my %Opt = (
337                'local' => 1,
338                'cachedir' => 't/var',
339                'quiet' => 1,
340                'dumpvars' => ".",
341                'report' => $id,
342               );
343     my $dumpvars = {};
344     my $extract = CPAN::Testers::ParseReport::parse_report
345           (
346            "t/var/nntp-testers/$id",
347            $dumpvars,
348            %Opt,
349           );
350     is $extract->{'mod:Catalyst::Plugin::Session::State::Cookie'}, "0.17", "report $id: C:P:S:S:C version";
351     is $extract->{'mod:Catalyst::Controller::ActionRole'}, "0.12", "report $id: C:C:AR mod version";
352     is $extract->{'prereq:Catalyst::Controller::ActionRole'}, "0.12", "report $id: C:C:AR prereq version";
353     is $extract->{'mod:Moose::Autobox'}, "0.10", "report $id: M:A mod version";
354     is $extract->{'prereq:Moose::Autobox'}, "0.09", "report $id: M:A prereq version";
355     is $extract->{'mod:CPANPLUS'}, '0.89_07', "report $id: CPANPLUS version";
356     is $extract->{'mod:Cwd'}, '3.30', "report $id: Cwd version";
357     is $extract->{'meta:date'}, '2009-11-08T14:48:26', "report $id: date";
361     BEGIN {
362         $plan += 1;
363     }
364     my $id = 2129076;
365     my %Opt = (
366                'local' => 1,
367                'cachedir' => 't/var',
368                'quiet' => 1,
369                'dumpvars' => ".",
370                'report' => $id,
371               );
372     my $dumpvars = {};
373     my $extract = CPAN::Testers::ParseReport::parse_report
374           (
375            "t/var/nntp-testers/$id",
376            $dumpvars,
377            %Opt,
378           );
379     is $extract->{'meta:date'}, '2008-09-02T18:05:00', "report $id: date";
383     BEGIN {
384         $plan += 1;
385     }
386     my $id = 6422067;
387     my %Opt = (
388                'local' => 1,
389                'cachedir' => 't/var',
390                'quiet' => 1,
391                'dumpvars' => ".",
392                'report' => $id,
393                'q' => ['qr:(Failed test\s+\S+.*)'],
394               );
395     my $dumpvars = {};
396     my $extract = CPAN::Testers::ParseReport::parse_report
397           (
398            "t/var/nntp-testers/$id",
399            $dumpvars,
400            %Opt,
401           );
402     is $extract->{'qr:(Failed test\s+\S+.*)'}, q{Failed test 'Pod coverage on App::Pm2Port'}, "report $id: qr...Failed test...";
406     BEGIN {
407         $plan += 1;
408     }
409     my $id = 6115651;
410     my %Opt = (
411                'local' => 1,
412                'cachedir' => 't/var',
413                'quiet' => 1,
414                'dumpvars' => ".",
415                'report' => $id,
416               );
417     my $dumpvars = {};
418     my $extract = CPAN::Testers::ParseReport::parse_report
419           (
420            "t/var/nntp-testers/$id",
421            $dumpvars,
422            %Opt,
423           );
424     is $extract->{'meta:perl'}, q{5.11.2}, "report $id: meta:perl";
428     BEGIN {
429         $plan += 1;
430     }
431     my $id = 6525411;
432     my %Opt = (
433                'local' => 1,
434                'cachedir' => 't/var',
435                'quiet' => 1,
436                'dumpvars' => ".",
437                'report' => $id,
438               );
439     my $dumpvars = {};
440     my $extract = CPAN::Testers::ParseReport::parse_report
441           (
442            "t/var/nntp-testers/$id",
443            $dumpvars,
444            %Opt,
445           );
446     is $extract->{'mod:Image::Imlib2'}, q{0}, "report $id: mod:Image::Imlib2";
450     BEGIN {
451         $plan += 2;
452     }
453     my $id = 8327429;
454     my %Opt = (
455                'local' => 1,
456                'cachedir' => 't/var',
457                'quiet' => 1,
458                'dumpvars' => ".",
459                'report' => $id,
460               );
461     my $dumpvars = {};
462     my $extract = CPAN::Testers::ParseReport::parse_report
463           (
464            "t/var/nntp-testers/$id",
465            $dumpvars,
466            %Opt,
467           );
468     is $extract->{'prereq:Module::Build'}, q{0.36}, "report $id: prereq:Module::Build";
469     is $extract->{'mod:Module::Build'}, q{0.36_13}, "report $id: mod:Module::Build";
472 unlink "ctgetreports.out";
474 BEGIN {
475       plan tests => $plan;
478 __END__
480 # Local Variables:
481 # mode: cperl
482 # cperl-indent-level: 4
483 # End: