1use strict; 2use warnings; 3use Test::More 0.88; 4 5use CPAN::Meta; 6use CPAN::Meta::Validator; 7use File::Spec; 8use IO::Dir; 9use Parse::CPAN::Meta; 10 11delete $ENV{PERL_YAML_BACKEND}; 12delete $ENV{PERL_JSON_BACKEND}; 13delete $ENV{CPAN_META_JSON_BACKEND}; 14delete $ENV{CPAN_META_JSON_DECODER}; 15 16{ 17 my @data_dirs = qw( t/data-test t/data-valid ); 18 my @files = sort map { 19 my $d = $_; 20 map { "$d/$_" } grep { substr($_,0,1) ne '.' } IO::Dir->new($d)->read 21 } @data_dirs; 22 23 for my $f ( @files ) { 24 my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile($f) ); 25 my $cmv = CPAN::Meta::Validator->new({%$meta}); 26 ok( $cmv->is_valid, "$f validates" ) 27 or diag( "ERRORS:\n" . join( "\n", $cmv->errors ) ); 28 } 29} 30 31{ 32 my @data_dirs = qw( t/data-fail t/data-fixable ); 33 my @files = sort map { 34 my $d = $_; 35 map { "$d/$_" } grep { substr($_,0,1) ne '.' } IO::Dir->new($d)->read 36 } @data_dirs; 37 38 for my $f ( @files ) { 39 my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile($f) ); 40 my $cmv = CPAN::Meta::Validator->new({%$meta}); 41 ok( ! $cmv->is_valid, "$f shouldn't validate" ); 42 note 'validation error: ', $_ foreach $cmv->errors; 43 } 44} 45 46done_testing; 47# vim: ts=2 sts=2 sw=2 et : 48