use strict; use warnings; use Test::More 0.88; use CPAN::Meta; use File::Spec; use IO::Dir; sub _slurp { do { local(@ARGV,$/)=shift(@_); <> } } delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults my $data_dir = IO::Dir->new( 't/data-bad' ); my @files = sort grep { /^\w/ } $data_dir->read; for my $f ( sort @files ) { my $path = File::Spec->catfile('t','data-bad',$f); my $meta = eval { CPAN::Meta->load_file( $path, { fix_errors => 1 } ) }; ok( defined $meta, "load_file('$f')" ) or diag $@; my $string = _slurp($path); my $method = $path =~ /\.json/ ? "load_json_string" : "load_yaml_string"; my $meta2 = eval { CPAN::Meta->$method( $string, { fix_errors => 1 } ) }; ok( defined $meta2, "$method(slurp('$f'))" ) or diag $@; } done_testing;