Skip to content
Browse files

imported from version 0.01, see Changes file.

  • Loading branch information...
0 parents commit fd9ae8b26d55ba071b03b10dea4ca27c8106e268 @barbie committed Jul 16, 2009
4 Changes
@@ -0,0 +1,4 @@
+Revision history for the CPAN-Testers-WWW-Reports-Parser distribution
+
+0.01 08/06/2009
+ - Initial release
17 MANIFEST
@@ -0,0 +1,17 @@
+Changes
+lib/CPAN/Testers/WWW/Reports/Parser.pm
+lib/CPAN/Testers/WWW/Reports/Parser/JSON.pm
+lib/CPAN/Testers/WWW/Reports/Parser/YAML.pm
+Makefile.PL
+MANIFEST
+META.yml
+README
+t/01base.t
+t/10json.t
+t/11yaml.t
+t/90podtest.t
+t/91podcover.t
+t/94metatest.t
+t/95changedate.t
+t/samples/App-Maisha.json
+t/samples/App-Maisha.yaml
45 META.yml
@@ -0,0 +1,45 @@
+--- #YAML:1.0
+name: CPAN-Testers-WWW-Reports-Parser
+version: 0.01
+abstract: CPAN Testers reports data parser
+author:
+ - Barbie <barbie@cpan.org>
+
+license: perl
+distribution_type: module
+installdirs: site
+
+requires:
+ Carp: 0
+recommends:
+ JSON::XS: 0
+ YAML::XS: 0
+ Test::More: 0.70
+ Test::Pod: 1.00
+ Test::Pod::Coverage: 0.08
+ Test::CPAN::Meta: 0.08
+build_requires:
+ Test::More: 0.01
+
+provides:
+ CPAN::Testers::WWW::Reports::Parser:
+ file: lib/CPAN/Testers/WWW/Reports/Parser.pm
+ version: 0.01
+ CPAN::Testers::WWW::Reports::Parser::JSON:
+ file: lib/CPAN/Testers/WWW/Reports/Parser/JSON.pm
+ version: 0.01
+ CPAN::Testers::WWW::Reports::Parser::YAML:
+ file: lib/CPAN/Testers/WWW/Reports/Parser/YAML.pm
+ version: 0.01
+no_index:
+ directory:
+ - t
+
+resources:
+ license: http://dev.perl.org/licenses/
+ bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Testers-WWW-Reports-Parser
+
+meta-spec:
+ version: 1.4
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+generated_by: Hand 1.0
18 Makefile.PL
@@ -0,0 +1,18 @@
+use ExtUtils::MakeMaker;
+WriteMakefile(
+ 'NAME' => 'CPAN::Testers::WWW::Reports::Parser',
+ 'VERSION_FROM' => 'lib/CPAN/Testers/WWW/Reports/Parser.pm',
+ 'PREREQ_PM' => {
+ 'Carp' => 0,
+
+ # only one of the following is required.
+
+ #'JSON::XS' => 0,
+ #'YAML::XS' => 0,
+ },
+ 'NO_META' => 1,
+
+ ($] >= 5.005 ? ## Add these new keywords supported since 5.005
+ (ABSTRACT => 'CPAN Testers reports data parser',
+ AUTHOR => 'Barbie <barbie@cpan.org>') : ()),
+);
55 README
@@ -0,0 +1,55 @@
+CPAN-Testers-WWW-Reports-Parser
+===============================
+
+This distribution is the CPAN Testers reports data parser.
+
+This distribution is used to extract the data from either a JSON or a YAML file
+containing metadata regarding reports submitted by CPAN Testers, and available
+from the CPAN Testers website.
+
+DEPENDENCIES
+
+The scripts require the following Perl modules to be installed:
+
+ Carp
+
+Requires one of the following, depending which type of parsing is required:
+
+ JSON::XS
+ YAML::XS
+
+INSTALLATION
+
+To install this module, untar the tarball into the directory of choice then
+type the following on the command line (substitute make with nmake or dmake
+if appropriate):
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+Alternatively you may wish to use the CPAN.pm shell or CPANPLUS shell as your
+installer, which will automatically detect uninstalled prerequisities and
+install those too for you.
+
+BUGS, PATCHES & FIXES
+
+There are no known bugs at the time of this release. However, if you spot a
+bug or are experiencing difficulties that are not explained within the POD
+documentation, please submit a bug to the RT system (see link below). However,
+it would help greatly if you are able to pinpoint problems or even supply a
+patch.
+
+Fixes are dependant upon their severity and my availablity. Should a fix not
+be forthcoming, please feel free to (politely) remind me by sending an email
+to barbie@cpan.org .
+
+RT: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Testers-WWW-Reports-Parser
+
+COPYRIGHT AND LICENCE
+
+ Copyright (C) 2009 Barbie for Miss Barbell Productions
+
+ This package is free software; you can redistribute it and/or
+ modify it under the same terms as Perl itself.
375 lib/CPAN/Testers/WWW/Reports/Parser.pm
@@ -0,0 +1,375 @@
+package CPAN::Testers::WWW::Reports::Parser;
+
+use strict;
+use warnings;
+
+use vars qw($VERSION);
+$VERSION = '0.01';
+
+#----------------------------------------------------------------------------
+# Library Modules
+
+use Carp;
+
+#----------------------------------------------------------------------------
+# Variables
+
+my $WEB = 'http://nntp.perl.org/perl.cpan.testers/';
+my @valid_fields = qw( id distribution dist distname version distversion perl
+ state status grade action osname ostext osvers platform
+ archname url csspatch cssperl );
+my %valid_fields = map {$_ => 1} @valid_fields;
+
+#----------------------------------------------------------------------------
+# The Application Programming Interface
+
+sub new {
+ my $class = shift;
+ my %hash = @_;
+
+ croak "No data format specified\n" unless($hash{format});
+ croak "Unknown data format specified\n" unless($hash{format} =~ /^(yaml|json)$/i);
+ croak "Must specify a file or data block to parse\n" unless($hash{data} || $hash{file});
+ croak "Cannot access file [$hash{file}]\n" if(defined $hash{file} && ! -f $hash{file});
+
+ my $self = {
+ 'format' => uc $hash{'format'},
+ 'data' => $hash{'data'},
+ 'file' => $hash{'file'},
+ };
+ bless $self, $class;
+
+ my $parser = 'CPAN::Testers::WWW::Reports::Parser::' . $self->{'format'};
+ eval "use $parser";
+ croak "Cannot access $self->{'format'} parser, have you installed the necessary support modules?\n"
+ if($@);
+
+ $self->{parser} = $parser->new();
+ $self->{parser}->register( file => $self->{file}, data => $self->{data} );
+ $self->{current} = {};
+
+ return $self;
+}
+
+sub DESTROY {
+ my $self = shift;
+}
+
+sub filter {
+ my $self = shift;
+
+ if(@_) {
+ $self->{all} = $_[0] =~ /^ALL$/i ? shift : 0;
+ $self->{fields}{$_} = 1 for(grep {$valid_fields{$_}} @_);
+
+ # if no arguments, reset to default
+ } else {
+ $self->{all} = 1;
+ $self->{fields} = {};
+ }
+}
+
+# full data set methods
+
+sub reports {
+ my $self = shift;
+
+ $self->filter(@_) if(@_);
+
+#use Data::Dumper;
+#print STDERR (Dumper($self->{fields}));
+
+ my $data = $self->{parser}->raw_data();
+ return $data unless(defined $self->{fields});
+
+ no strict 'refs';
+
+ for my $report (@$data) {
+ $self->{current} = $report;
+ for my $field (keys %{ $self->{fields} }) {
+ #print STDERR "field=$field\n";
+ eval { $report->{$field} = $self->$field(); };
+ }
+
+ next if($self->{all});
+
+ for my $key (keys %$report) {
+ delete $report->{$key} unless($self->{fields}{$key});
+ }
+ }
+
+ return $data;
+}
+
+
+# iterate through data set
+
+sub report {
+ my $self = shift;
+
+ unless($self->{loaded}) {
+ $self->{reports} = $self->{parser}->raw_data();
+ $self->{loaded} = 1;
+ }
+
+ return unless(scalar(@{ $self->{reports} }));
+
+ $self->{current} = shift @{ $self->{reports} };
+ my %report = map {$_ => $self->{current}{$_}} keys %{$self->{current}};
+
+ if(scalar(keys %{ $self->{fields} })) {
+ no strict 'refs';
+
+ for my $field (keys %{ $self->{fields} }) {
+ eval { $report{$field} = $self->$field(); };
+ }
+
+ unless($self->{all}) {
+ for my $key (keys %report) {
+ delete $report{$key} unless($self->{fields}{$key});
+ }
+ }
+ }
+
+ return \%report;
+}
+
+
+# transpose legacy field names to current field names
+
+sub id { my $self = shift; return $self->{current}->{id} }
+sub distribution { my $self = shift; return $self->{current}->{distribution} }
+sub dist { my $self = shift; return $self->{current}->{distribution} }
+sub distname { my $self = shift; return $self->{current}->{distribution} }
+sub version { my $self = shift; return $self->{current}->{version} }
+sub distversion { my $self = shift; return $self->{current}->{distversion} }
+sub perl { my $self = shift; return $self->{current}->{perl} }
+
+sub state { my $self = shift; return $self->{current}->{state} }
+sub status { my $self = shift; return $self->{current}->{status} }
+sub grade { my $self = shift; return $self->{current}->{status} }
+sub action { my $self = shift; return $self->{current}->{status} }
+
+sub osname { my $self = shift; return $self->{current}->{osname} }
+sub ostext { my $self = shift; return $self->{current}->{ostext} }
+sub osvers { my $self = shift; return $self->{current}->{osvers} }
+sub platform { my $self = shift; return $self->{current}->{platform} }
+sub archname { my $self = shift; return $self->{current}->{platform} }
+
+sub url { my $self = shift; return $WEB . $self->{current}->{id} }
+
+sub csspatch { my $self = shift; return $self->{current}->{csspatch} }
+sub cssperl { my $self = shift; return $self->{current}->{cssperl} }
+
+
+q{ another hope, another dream, another truth ... installed by the machine };
+
+__END__
+
+=head1 NAME
+
+CPAN::Testers::WWW::Reports::Parser - CPAN Testers reports data parser
+
+=head1 SYNOPSIS
+
+ use CPAN::Testers::WWW::Reports::Parser;
+
+ my $obj = CPAN::Testers::WWW::Reports::Parser->new(
+ format => 'YAML', # or 'JSON'
+ file => $file # or data => $data
+ );
+
+ # iterator, accessing aternate field names
+ while( my $data = $obj->report() ) {
+ my $dist = $obj->distribution(); # or $obj->dist(), or $obj->distname()
+ ...
+
+ # note that the object is used to reference the methods retrieving
+ # the individual field names, as the $data variable is a hashref to a
+ # hash of a single report.
+ }
+
+ # iterator, filtering field names
+ $obj->filter(@fields);
+ $obj->filter('ALL', @fields);
+ while( my $data = $obj->report() ) {
+ # automatically populates the returned hash with the fields required.
+ # removes any field values not requested, unless the first value in the
+ # list is the string 'ALL'.
+ }
+
+ $obj->filter(); # reset to default original hash
+
+ # note that filter() will also affect the reports() method.
+
+ # full array of hashes
+ my $data = $obj->reports(); # array of original hashes
+ my $data = $obj->reports(@fields); # array of amended hashes
+ my $data = $obj->reports('ALL',@fields); # array of original + amended hashes
+
+
+=head1 DESCRIPTION
+
+This distribution is used to extract the data from either a JSON or a YAML file
+containing metadata regarding reports submitted by CPAN Testers, and available
+from the CPAN Testers website.
+
+=head1 INTERFACE
+
+=head2 The Constructor
+
+=over
+
+=item * new
+
+Instatiates the object CPAN::Testers::WWW::Reports::Parser:
+
+ my $obj = CPAN::Testers::WWW::Reports::Parser->new(
+ format => 'YAML', # or 'JSON'
+ file => $file # or data => $data
+ );
+
+=back
+
+=head2 Report Methods
+
+=over
+
+=item * filter
+
+Adds filtering to the report, if you require a different set of field names
+than exist in the default report. Add 'ALL' as the first entry to retain the
+default field names, and merely extend the data set.
+
+To reset filtering, simply call filter() with no arguments.
+
+=item * reports
+
+Returns the full data set as an array reference to a set of hashes. Can take
+arguments as per filter(), or will used any previously set filter() state.
+
+=item * report
+
+Returns a single report data hash. Use filter() to set what field names you
+require, otherwise the default data hash is returned.
+
+=back
+
+=head2 Field methods
+
+=over
+
+=item * id
+
+Report ID.
+
+=item * distribution
+
+=item * dist
+
+=item * distname
+
+Variations of the distribution name.
+
+=item * version
+
+Distribution version.
+
+=item * distversion
+
+Distribution name and version.
+
+=item * perl
+
+Version of perl used to test.
+
+=item * state
+
+=item * status
+
+=item * grade
+
+=item * action
+
+Variations on the grade of the report. Note that 'state' represents the lower
+case version, while the others are upper case.
+
+=item * osname
+
+String extracted representing the Operating System name.
+
+=item * ostext
+
+Normalised version of the Operating System name, where known, as occasionally
+the name may not correctly reflect a print friendly version of the name, or
+even the actual name.
+
+=item * osvers
+
+Operating System version, if known.
+
+=item * platform
+
+=item * archname
+
+The architecture name of the Operating System installed, as this usually
+gives more information about the setup of the smoke box, such as whether the
+OS is 64-bit or not.
+
+=item * url
+
+The current path to an online version of the individual report.
+
+=item * csspatch
+
+Primarily used for web, provides a quick indicator as to whether this release
+was tested with a patched version of perl. Possible values are:
+
+ pat - patched
+ unp - unpatched
+
+=item * cssperl
+
+Primarily used for web, provides a quick indicator as to whether this release
+was tested with a development version of perl. Possible values are:
+
+ rel - official release
+ dev - development release (i.e. 5.7.*, 5.9.* or 5.11.*)
+
+=back
+
+Please note that this distribution aims to aid backwards compatibility regards
+the contents of the reports data. If the data ever needs to change, then
+upgrading to the latest release of this distribution, should enable you to
+continue using older, depreciated field names within your code.
+
+=head1 BUGS, PATCHES & FIXES
+
+There are no known bugs at the time of this release. However, if you spot a
+bug or are experiencing difficulties, that is not explained within the POD
+documentation, please send bug reports and patches to the RT Queue (see below).
+
+Fixes are dependant upon their severity and my availablity. Should a fix not
+be forthcoming, please feel free to (politely) remind me.
+
+RT: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Testers-WWW-Reports-Parser
+
+=head1 SEE ALSO
+
+F<http://www.cpantesters.org/>,
+F<http://stats.cpantesters.org/>,
+F<http://wiki.cpantesters.org/>,
+F<http://blog.cpantesters.org/>
+
+=head1 AUTHOR
+
+ Barbie <barbie@cpan.org> 2009-present
+
+=head1 COPYRIGHT AND LICENSE
+
+ Copyright (C) 2009 Barbie <barbie@cpan.org>
+
+ This module is free software; you can redistribute it and/or
+ modify it under the same terms as Perl itself.
+
+=cut
134 lib/CPAN/Testers/WWW/Reports/Parser/JSON.pm
@@ -0,0 +1,134 @@
+package CPAN::Testers::WWW::Reports::Parser::JSON;
+
+use strict;
+use warnings;
+
+use vars qw($VERSION);
+$VERSION = '0.01';
+
+#----------------------------------------------------------------------------
+# Library Modules
+
+use JSON::XS;
+
+#----------------------------------------------------------------------------
+# Variables
+
+#----------------------------------------------------------------------------
+# The Application Programming Interface
+
+sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+ return $self;
+}
+
+sub DESTROY {
+ my $self = shift;
+}
+
+# full data set methods
+
+sub register {
+ my $self = shift;
+ my %hash = @_;
+ $self->{file} = $hash{file};
+ $self->{data} = $hash{data};
+}
+
+sub raw_data {
+ my $self = shift;
+ $self->{data} = $self->_load_file($self->{file}) if($self->{file});
+ return decode_json($self->{data});
+}
+
+sub _load_file {
+ my ($self,$file) = @_;
+ my $fh;
+
+ if (ref $file eq 'GLOB') {
+ $fh = $file;
+ } else {
+ open $fh, $file or die "Can't open file [$file]: $!\n";
+ }
+ return do { local $/; <$fh> };
+}
+
+q{ Is all that we or seem, but a dream within a dream ? };
+
+__END__
+
+=head1 NAME
+
+CPAN::Testers::WWW::Reports::Parser::JSON - CPAN Testers JSON parser
+
+=head1 SYNOPSIS
+
+ use CPAN::Testers::WWW::Reports::Parser::JSON;
+
+ my $obj = CPAN::Testers::WWW::Reports::Parser::JSON->new();
+
+ $obj->register( file => $file ); # local file name
+ $obj->register( data => $data ); # reference to a data block
+
+ my $data = $obj->raw_data();
+
+=head1 DESCRIPTION
+
+This distribution is used to extract the data from a JSON file containing
+metadata regarding reports submitted by CPAN Testers, and available from the
+CPAN Testers website.
+
+=head1 INTERFACE
+
+=head2 The Constructor
+
+=over
+
+=item * new
+
+Instatiates the object.
+
+=back
+
+=head2 Public Methods
+
+=over
+
+=item * register
+
+=item * raw_data
+
+=back
+
+=head1 BUGS, PATCHES & FIXES
+
+There are no known bugs at the time of this release. However, if you spot a
+bug or are experiencing difficulties, that is not explained within the POD
+documentation, please send bug reports and patches to the RT Queue (see below).
+
+Fixes are dependant upon their severity and my availablity. Should a fix not
+be forthcoming, please feel free to (politely) remind me.
+
+RT: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Testers-WWW-Reports-Parser
+
+=head1 SEE ALSO
+
+F<http://www.cpantesters.org/>,
+F<http://stats.cpantesters.org/>,
+F<http://wiki.cpantesters.org/>,
+F<http://blog.cpantesters.org/>
+
+=head1 AUTHOR
+
+ Barbie <barbie@cpan.org> 2009-present
+
+=head1 COPYRIGHT AND LICENSE
+
+ Copyright (C) 2009 Barbie <barbie@cpan.org>
+
+ This module is free software; you can redistribute it and/or
+ modify it under the same terms as Perl itself.
+
+=cut
122 lib/CPAN/Testers/WWW/Reports/Parser/YAML.pm
@@ -0,0 +1,122 @@
+package CPAN::Testers::WWW::Reports::Parser::YAML;
+
+use strict;
+use warnings;
+
+use vars qw($VERSION);
+$VERSION = '0.01';
+
+#----------------------------------------------------------------------------
+# Library Modules
+
+use YAML::XS qw(Load LoadFile);
+
+#----------------------------------------------------------------------------
+# Variables
+
+#----------------------------------------------------------------------------
+# The Application Programming Interface
+
+sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+ return $self;
+}
+
+sub DESTROY {
+ my $self = shift;
+}
+
+# full data set methods
+
+sub register {
+ my $self = shift;
+ my %hash = @_;
+ $self->{file} = $hash{file};
+ $self->{data} = $hash{data};
+}
+
+sub raw_data {
+ my $self = shift;
+ return Load($self->{data}) if($self->{data});
+ return LoadFile($self->{file});
+}
+
+q{ Kein Zurück für dich };
+
+__END__
+
+=head1 NAME
+
+CPAN::Testers::WWW::Reports::Parser::YAML - CPAN Testers YAML parser
+
+=head1 SYNOPSIS
+
+ use CPAN::Testers::WWW::Reports::Parser::YAML;
+
+ my $obj = CPAN::Testers::WWW::Reports::Parser::YAML->new();
+
+ $obj->register( file => $file ); # local file name
+ $obj->register( data => $data ); # reference to a data block
+
+ my $data = $obj->raw_data();
+
+=head1 DESCRIPTION
+
+This distribution is used to extract the data from a YAML file containing
+metadata regarding reports submitted by CPAN Testers, and available from the
+CPAN Testers website.
+
+=head1 INTERFACE
+
+=head2 The Constructor
+
+=over
+
+=item * new
+
+Instatiates the object.
+
+=back
+
+=head2 Public Methods
+
+=over
+
+=item * register
+
+=item * raw_data
+
+=back
+
+=head1 BUGS, PATCHES & FIXES
+
+There are no known bugs at the time of this release. However, if you spot a
+bug or are experiencing difficulties, that is not explained within the POD
+documentation, please send bug reports and patches to the RT Queue (see below).
+
+Fixes are dependant upon their severity and my availablity. Should a fix not
+be forthcoming, please feel free to (politely) remind me.
+
+RT: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Testers-WWW-Reports-Parser
+
+=head1 SEE ALSO
+
+F<http://www.cpantesters.org/>,
+F<http://stats.cpantesters.org/>,
+F<http://wiki.cpantesters.org/>,
+F<http://blog.cpantesters.org/>
+
+=head1 AUTHOR
+
+ Barbie <barbie@cpan.org> 2009-present
+
+=head1 COPYRIGHT AND LICENSE
+
+ Copyright (C) 2009 Barbie <barbie@cpan.org>
+
+ This module is free software; you can redistribute it and/or
+ modify it under the same terms as Perl itself.
+
+=cut
21 t/01base.t
@@ -0,0 +1,21 @@
+#!/usr/bin/perl -w
+use strict;
+
+use Test::More tests => 3;
+
+BEGIN {
+ use_ok( 'CPAN::Testers::WWW::Reports::Parser' );
+
+ eval "use JSON::XS";
+ SKIP: {
+ skip "JSON::XS required for testing JSON parser", 1 if $@;
+ use_ok( 'CPAN::Testers::WWW::Reports::Parser::JSON' );
+ }
+
+ eval "use YAML::XS";
+ SKIP: {
+ skip "YAML::XS required for testing YAML parser", 1 if $@;
+ use_ok( 'CPAN::Testers::WWW::Reports::Parser::YAML' );
+ }
+}
+
112 t/10json.t
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+use strict;
+use Test::More;
+use CPAN::Testers::WWW::Reports::Parser;
+use Data::Dumper;
+
+eval "use JSON::XS";
+plan skip_all => "JSON::XS required for testing JSON parser" if $@;
+plan tests => 30;
+
+my $count = 100;
+my $report_original = {
+ 'ostext' => 'Linux',
+ 'version' => '0.12',
+ 'status' => 'PASS',
+ 'dist' => undef,
+ 'osvers' => '2.6.27.19-5-default',
+ 'csspatch' => 'unp',
+ 'state' => 'pass',
+ 'distribution' => 'App-Maisha',
+ 'perl' => '5.10.0',
+ 'distversion' => 'App-Maisha-0.12',
+ 'cssperl' => 'rel',
+ 'osname' => 'linux',
+ 'platform' => 's390x-linux',
+ 'id' => '3702934'
+};
+my $report_filtered = {
+ 'version' => '0.12',
+ 'grade' => 'PASS',
+ 'distname' => 'App-Maisha'
+};
+my $report_extended = {
+ 'ostext' => 'Linux',
+ 'version' => '0.12',
+ 'status' => 'PASS',
+ 'grade' => 'PASS',
+ 'dist' => undef,
+ 'osvers' => '2.6.27.19-5-default',
+ 'csspatch' => 'unp',
+ 'state' => 'pass',
+ 'distribution' => 'App-Maisha',
+ 'perl' => '5.10.0',
+ 'distversion' => 'App-Maisha-0.12',
+ 'cssperl' => 'rel',
+ 'osname' => 'linux',
+ 'platform' => 's390x-linux',
+ 'id' => '3702934',
+ 'distname' => 'App-Maisha'
+};
+my @fields = qw(distname version grade);
+my @all_fields = qw(
+ id distribution dist distname version distversion perl
+ state status grade action osname ostext osvers platform
+ archname url csspatch cssperl);
+
+
+my $obj = CPAN::Testers::WWW::Reports::Parser->new(
+ 'format' => 'JSON',
+ 'file' => './t/samples/App-Maisha.json'
+);
+isa_ok($obj,'CPAN::Testers::WWW::Reports::Parser');
+
+my $data = $obj->reports();
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_original,'.. matches original report');
+
+$data = $obj->reports(@fields);
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_filtered,'.. matches filtered report');
+
+$data = $obj->reports('ALL',@fields);
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_extended,'.. matches extended report');
+
+$obj->filter();
+$data = $obj->report();
+is_deeply($data,$report_original,'.. matches original report');
+
+$obj->{loaded} = 0;
+$obj->filter(@fields);
+$data = $obj->report();
+#diag(Dumper($data));
+is_deeply($data,$report_filtered,'.. matches filtered report');
+
+$obj->{loaded} = 0;
+$obj->filter('ALL',@fields);
+$data = $obj->report();
+is_deeply($data,$report_extended,'.. matches extended report');
+
+$obj->{loaded} = 0;
+$obj->filter();
+my $reports = 0;
+while( $data = $obj->report() ) { $reports++ };
+is($reports,$count,'.. report count correct');
+
+{
+ $obj->{loaded} = 0;
+ $obj->filter(@all_fields);
+ $data = $obj->report();
+
+ no strict 'refs';
+ for (qw( id distribution dist distname version distversion perl
+ state status grade action osname ostext osvers platform
+ archname url csspatch cssperl )) {
+ is($obj->$_(),$data->{$_},".. field '$_' matches direct and indirect access");
+ }
+}
+
109 t/11yaml.t
@@ -0,0 +1,109 @@
+#!/usr/bin/perl -w
+use strict;
+use Test::More;
+use CPAN::Testers::WWW::Reports::Parser;
+use Data::Dumper;
+
+eval "use YAML::XS";
+plan skip_all => "YAML::XS required for testing YAML parser" if $@;
+plan tests => 30;
+
+my $count = 412;
+my $report_original = {
+ 'ostext' => 'Linux',
+ 'version' => '0.12',
+ 'status' => 'PASS',
+ 'osvers' => '2.6.27.19-5-default',
+ 'csspatch' => 'unp',
+ 'state' => 'pass',
+ 'distribution' => 'App-Maisha',
+ 'perl' => '5.10.0',
+ 'cssperl' => 'rel',
+ 'distversion' => 'App-Maisha-0.12',
+ 'osname' => 'linux',
+ 'platform' => 's390x-linux',
+ 'id' => 3702934
+};
+my $report_filtered = {
+ 'version' => '0.12',
+ 'grade' => 'PASS',
+ 'distname' => 'App-Maisha'
+};
+my $report_extended = {
+ 'ostext' => 'Linux',
+ 'version' => '0.12',
+ 'status' => 'PASS',
+ 'grade' => 'PASS',
+ 'osvers' => '2.6.27.19-5-default',
+ 'csspatch' => 'unp',
+ 'state' => 'pass',
+ 'distribution' => 'App-Maisha',
+ 'perl' => '5.10.0',
+ 'cssperl' => 'rel',
+ 'distversion' => 'App-Maisha-0.12',
+ 'osname' => 'linux',
+ 'platform' => 's390x-linux',
+ 'id' => 3702934,
+ 'distname' => 'App-Maisha'
+};
+my @fields = qw(distname version grade);
+my @all_fields = qw(
+ id distribution dist distname version distversion perl
+ state status grade action osname ostext osvers platform
+ archname url csspatch cssperl);
+
+
+my $obj = CPAN::Testers::WWW::Reports::Parser->new(
+ 'format' => 'YAML',
+ 'file' => './t/samples/App-Maisha.yaml'
+);
+isa_ok($obj,'CPAN::Testers::WWW::Reports::Parser');
+
+my $data = $obj->reports();
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_original,'.. matches original report');
+
+$data = $obj->reports(@fields);
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_filtered,'.. matches filtered report');
+
+$data = $obj->reports('ALL',@fields);
+#diag(Dumper($data->[0]));
+is(scalar(@$data),$count,'.. report count correct');
+is_deeply($data->[0],$report_extended,'.. matches extended report');
+
+$obj->filter();
+$data = $obj->report();
+is_deeply($data,$report_original,'.. matches original report');
+
+$obj->{loaded} = 0;
+$obj->filter(@fields);
+$data = $obj->report();
+is_deeply($data,$report_filtered,'.. matches filtered report');
+
+$obj->{loaded} = 0;
+$obj->filter('ALL',@fields);
+$data = $obj->report();
+is_deeply($data,$report_extended,'.. matches extended report');
+
+$obj->{loaded} = 0;
+$obj->filter();
+my $reports = 0;
+while( $data = $obj->report() ) { $reports++ };
+is($reports,$count,'.. report count correct');
+
+{
+ $obj->{loaded} = 0;
+ $obj->filter(@all_fields);
+ $data = $obj->report();
+
+ no strict 'refs';
+ for (qw( id distribution dist distname version distversion perl
+ state status grade action osname ostext osvers platform
+ archname url csspatch cssperl )) {
+ is($obj->$_(),$data->{$_},".. field '$_' matches direct and indirect access");
+ }
+}
+
10 t/90podtest.t
@@ -0,0 +1,10 @@
+use Test::More;
+
+# Skip if doing a regular install
+plan skip_all => "Author tests not required for installation"
+ unless ( $ENV{AUTOMATED_TESTING} );
+
+eval "use Test::Pod 1.00";
+plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+all_pod_files_ok();
+
9 t/91podcover.t
@@ -0,0 +1,9 @@
+use Test::More;
+
+# Skip if doing a regular install
+plan skip_all => "Author tests not required for installation"
+ unless ( $ENV{AUTOMATED_TESTING} );
+
+eval "use Test::Pod::Coverage 0.08";
+plan skip_all => "Test::Pod::Coverage 0.08 required for testing POD coverage" if $@;
+all_pod_coverage_ok();
24 t/94metatest.t
@@ -0,0 +1,24 @@
+use Test::More;
+
+# Skip if doing a regular install
+plan skip_all => "Author tests not required for installation"
+ unless ( $ENV{AUTOMATED_TESTING} );
+
+eval "use Test::CPAN::Meta 0.12";
+plan skip_all => "Test::CPAN::Meta 0.12 required for testing META.yml" if $@;
+
+plan no_plan;
+
+my $yaml = meta_spec_ok(undef,undef,@_);
+
+use CPAN::Testers::WWW::Reports::Parser;
+
+is($yaml->{version},$CPAN::Testers::WWW::Reports::Parser::VERSION,
+ 'META.yml distribution version matches');
+
+if($yaml->{provides}) {
+ for my $mod (keys %{$yaml->{provides}}) {
+ is($yaml->{provides}{$mod}{version},$CPAN::Testers::WWW::Reports::Parser::VERSION,
+ "META.yml entry [$mod] version matches");
+ }
+}
20 t/95changedate.t
@@ -0,0 +1,20 @@
+use Test::More;
+use IO::File;
+use CPAN::Testers::WWW::Reports::Parser;
+
+# Skip if doing a regular install
+plan skip_all => "Author tests not required for installation"
+ unless ( $ENV{AUTOMATED_TESTING} );
+
+my $fh = IO::File->new('Changes','r') or plan skip_all => "Cannot open Changes file";
+
+plan no_plan;
+
+my $latest = 0;
+while(<$fh>) {
+ next unless(m!^\d!);
+ $latest = 1 if(m!^$CPAN::Testers::WWW::Reports::Parser::VERSION!);
+ like($_, qr!\d[\d._]+\s+\d{2}/\d{2}/\d{4}!,'... version has a date');
+}
+
+is($latest,1,'... latest version not listed');
1 t/samples/App-Maisha.json
@@ -0,0 +1 @@
+[{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.27.19-5-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3702934","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.27.19-5-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3692233","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.27.19-5-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3685805","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.27.19-5-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3612627","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3569987","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.24-16-generic","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3563573","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3544917","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3544224","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.24-16-generic","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3510751","platform":"i686-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-14-ovz-686","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3485314","platform":"i686-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.26-1-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3473855","platform":"x86_64-linux-thread-multi-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.5-7.315-s390","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3465677","platform":"s390-linux-thread-multi"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.11","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"solaris","id":"3433162","platform":"i86pc-solaris-64int"},{"ostext":"NetBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"4.0","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"netbsd","id":"3411136","platform":"powerpc-netbsd-thread-multi"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"freebsd","id":"3403886","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.24-16-generic","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3403768","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.21.5-smp","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3398457","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.5-7.315-s390","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3394174","platform":"s390-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.21.5-smp","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3393772","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.21.5-smp","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3393771","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3391607","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"freebsd","id":"3387630","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"freebsd","id":"3387619","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3386624","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3386620","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"solaris","id":"3383286","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.4","osname":"solaris","id":"3380733","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"freebsd","id":"3378755","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"solaris","id":"3376419","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"solaris","id":"3376407","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"freebsd","id":"3375934","platform":"amd64-freebsd"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"freebsd","id":"3374193","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"FAIL","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"fail","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"freebsd","id":"3373877","platform":"amd64-freebsd"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.5-7.315-s390","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3373669","platform":"s390-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.26.3-fuuka.profvince.com","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3371915","platform":"x86_64-linux-thread-multi"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"freebsd","id":"3370677","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"Windows (Cygwin)","status":"PASS","version":"0.12","dist":null,"csspatch":"pat","osvers":"1.5.25(0.15642)","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0 patch 34065","osname":"cygwin","id":"3370367","platform":"cygwin-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.11","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"solaris","id":"3369549","platform":"i86pc-solaris-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"6.4-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"freebsd","id":"3366141","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"freebsd","id":"3365539","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"freebsd","id":"3365402","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"NetBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"4.0.1","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"netbsd","id":"3359207","platform":"alpha-netbsd"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3359143","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3359038","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.24-etchnhalf.1-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3359008","platform":"x86_64-linux-thread-multi-ld"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3358998","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358955","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"linux","id":"3358921","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-92.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358805","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358799","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-14-ovz-686","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358744","platform":"i686-linux"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358693","platform":"s390x-linux-thread-multi"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.9","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"solaris","id":"3358292","platform":"sun4-solaris-thread-multi"},{"ostext":"IRIX","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"6.5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.8","osname":"irix","id":"3358225","platform":"IP35-irix-64int"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-4-xen-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.8.9","osname":"linux","id":"3358166","platform":"x86_64-linux-thread-multi"},{"ostext":"FreeBSD","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"freebsd","id":"3358160","platform":"i386-freebsd-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.18-4-xen-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3358142","platform":"x86_64-linux-thread-multi"},{"ostext":"Mac OS X","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"8.10.1","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"darwin","id":"3358136","platform":"darwin-thread-multi-2level"},{"ostext":"Linux","status":"PASS","version":"0.12","dist":null,"csspatch":"unp","osvers":"2.6.24-16-generic","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.12","perl":"5.10.0","osname":"linux","id":"3356813","platform":"i686-linux"},{"ostext":"Dragonfly BSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.0.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"dragonfly","id":"3348752","platform":"i386-dragonfly-64int"},{"ostext":"Dragonfly BSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.0.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"dragonfly","id":"3348739","platform":"i386-dragonfly-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"freebsd","id":"3347369","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"freebsd","id":"3343508","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"freebsd","id":"3343383","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"linux","id":"3341961","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.24-16-generic","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3340624","platform":"i686-linux"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"linux","id":"3337387","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3337379","platform":"i686-linux-thread-multi-64int-ld"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"linux","id":"3336819","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"linux","id":"3336358","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.24-etchnhalf.1-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3335769","platform":"x86_64-linux-thread-multi-ld"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3335031","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.16.60-0.31-default","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3334800","platform":"s390x-linux"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"solaris","id":"3334503","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.4","osname":"solaris","id":"3332740","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"Windows (Cygwin)","status":"PASS","version":"0.11","dist":null,"csspatch":"pat","osvers":"1.5.25(0.15642)","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0 patch 34065","osname":"cygwin","id":"3332178","platform":"cygwin-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-14-ovz-686","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3331710","platform":"i686-linux"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"solaris","id":"3329065","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.10","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"solaris","id":"3329064","platform":"i86pc-solaris-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"linux","id":"3327169","platform":"s390x-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-92.1.18.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"linux","id":"3327074","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-92.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3326511","platform":"s390x-linux"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-92.el5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3326437","platform":"s390x-linux-thread-multi"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"freebsd","id":"3326064","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"freebsd","id":"3323554","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"freebsd","id":"3323533","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"NetBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"4.0.1","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"netbsd","id":"3321950","platform":"alpha-netbsd"},{"ostext":"IRIX","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"6.5","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"irix","id":"3321947","platform":"IP35-irix-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.9","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"solaris","id":"3321913","platform":"sun4-solaris-thread-multi"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"freebsd","id":"3321872","platform":"i386-freebsd-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-4-xen-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"linux","id":"3321870","platform":"x86_64-linux-thread-multi"},{"ostext":"Linux","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.6.18-4-xen-amd64","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"linux","id":"3321863","platform":"x86_64-linux-thread-multi"},{"ostext":"Mac OS X","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"8.10.1","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"darwin","id":"3321862","platform":"darwin-thread-multi-2level"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.1-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"freebsd","id":"3318950","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"SunOS/Solaris","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"2.11","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.10.0","osname":"solaris","id":"3317921","platform":"i86pc-solaris-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.9","osname":"freebsd","id":"3316321","platform":"amd64-freebsd"},{"ostext":"FreeBSD","status":"PASS","version":"0.11","dist":null,"csspatch":"unp","osvers":"7.0-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.11","perl":"5.8.8","osname":"freebsd","id":"3316092","platform":"amd64-freebsd"},{"ostext":"FreeBSD","status":"PASS","version":"0.10","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.10","perl":"5.8.9","osname":"freebsd","id":"3343504","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"FreeBSD","status":"PASS","version":"0.10","dist":null,"csspatch":"unp","osvers":"6.2-release","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.10","perl":"5.10.0","osname":"freebsd","id":"3343378","platform":"i386-freebsd-thread-multi-64int"},{"ostext":"Linux","status":"PASS","version":"0.10","dist":null,"csspatch":"unp","osvers":"2.6.16.38","distribution":"App-Maisha","state":"pass","cssperl":"rel","distversion":"App-Maisha-0.10","perl":"5.8.8","osname":"linux","id":"3341960","platform":"i686-linux-thread-multi-64int-ld"}]
5,357 t/samples/App-Maisha.yaml
5,357 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.

0 comments on commit fd9ae8b

Please sign in to comment.
Something went wrong with that request. Please try again.