use strict; use warnings; use Test::More 0.88; use CPAN::Meta; use CPAN::Meta::Validator; use File::Spec; use IO::Dir; use Parse::CPAN::Meta 1.4400; delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults { my $data_dir = IO::Dir->new( 't/data' ); my @files = sort grep { /^\w/ } $data_dir->read; for my $f ( @files ) { my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile('t','data',$f) ); my $cmv = CPAN::Meta::Validator->new({%$meta}); ok( $cmv->is_valid, "$f validates" ) or diag( "ERRORS:\n" . join( "\n", $cmv->errors ) ); } } { my $data_dir = IO::Dir->new( 't/data-fail' ); my @files = sort grep { /^\w/ } $data_dir->read; for my $f ( @files ) { my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile('t','data-fail',$f) ); my $cmv = CPAN::Meta::Validator->new({%$meta}); ok( ! $cmv->is_valid, "invalid $f doesn't validate" ); } } done_testing;