App-cpan2arch
view release on metacpan or search on metacpan
t/lib/TestData.pm view on Meta::CPAN
package TestData;
use v5.42.0;
use strict;
use warnings;
use Exporter qw< import >;
our @EXPORT_OK = qw< expected_data test_diff >;
use Test2::V1 -utf8, qw<
fail
note
pass
>;
use Text::Diff 1.45;
# Perl dists intended to cover various C2A's PKGBUILD outputs.
my %DISTS = (
'Alien-GMP' => {
version => '1.16',
note => 'EU::MM; PP; Alien dist; dup. prereqs/pkgs; unusual license (deprecated)',
},
'App-cpm' => {
version => 'v1.1.1',
note => q{M::B::T; PP; flagged OOD pkgs (AUR); pkgs with epoch + 'v' prefix (AUR)},
},
'Data-Dump-Streamer' => {
version => '2.42',
note => 'M::B; XS; no perl in depends + perl in makedepends',
},
'DateTime-Format-RFC3339' => {
version => 'v1.10.0',
note => 'EU::MM; PP; multi licenses; unusual license (unrestricted); install license',
},
'Devel-REPL' => {
version => '1.003029',
note =>
'EU::MM; PP; dup. prereqs/pkgs; optional_features; multi optional_features; single quote in optdepends',
},
'FCGI-Client' => {
version => '0.09',
note => 'M::B::T; PP; flagged OOD pkgs (Official)',
},
'File-KDBX' => {
version => '0.906',
note => 'EU::MM; PP; dup. prereqs/pkgs; optional_features; failed modules; missing pkgs',
},
'Gtk2-Notify' => {
version => '0.05',
note => 'M::I; XS; no perl in depends; unusual license (open_source); odd pkgs (AUR)',
},
'Lingua-EN-Titlecase-Simple' => {
version => '1.015',
note => 'EU::MM; PP; single quote in abstract; install license',
},
'Minilla' => {
version => 'v3.1.29',
note => 'M::B::T; PP; dup. prereqs/pkgs; missing pkgs; odd pkgs',
},
'Padre' => {
version => '1.02',
note => 'M::I; XS; dup. prereqs/pkgs; missing pkgs; flagged OOD pkgs (AUR); odd pkgs',
},
'Perl-Critic' => {
version => '1.156',
note => 'M::B; PP; dup. prereqs/pkgs; odd pkgs',
},
'Pinto' => {
version => '0.14',
note => 'EU::MM; PP; has many dependencies (80+)',
},
'Regexp-Common' => {
version => '2024080801',
note => 'EU::MM; PP; dup. prereqs/pkgs; multi licenses; multi license files; install license; missing pkgs',
},
'Regexp-Debugger' => {
version => '0.002007',
note => 'EU::MM; PP; no license',
},
);
my %EXPECTED = (
'Alien-GMP' => {
meta => {
abstract => 'Alien package for the GNU Multiple Precision library.',
author => 'PLICEASE',
checksum => '090cd48ee535bf62f178895617a851783ae11aa4c6006a1fd4d84a432f113da5',
dependency => [
{
module => 'Test::Spelling',
phase => 'develop',
t/lib/TestData.pm view on Meta::CPAN
url=https://metacpan.org/dist/$_dist
license=('Artistic-1.0-Perl OR GPL-1.0-or-later')
depends=(
'perl-b-utils'
'perl-data-dumper'
'perl-exporter'
'perl-io'
'perl-text-abbrev'
'perl-text-balanced'
'perl>=5.6.0'
)
makedepends=(
'perl-base'
'perl-carp'
'perl-extutils-cbuilder'
'perl-extutils-depends'
'perl-module-build'
'perl-test-simple'
)
optdepends=(
'perl-algorithm-diff'
'perl-cpanel-json-xs'
'perl-io-compress'
'perl-mime-base64'
'perl-padwalker>=0.99'
)
options=('!emptydirs')
source=("https://cpan.metacpan.org/authors/id/${_author::1}/${_author::2}/$_author/$_dist-$pkgver.tar.gz")
sha256sums=('47f6e51fb45ce7be561e01481add0c2e1c0cd85df4b9e212f3923cd3064d1cad')
build()
{
cd "$_dist-$pkgver"
unset PERL_MB_OPT PERL5LIB PERL_LOCAL_LIB_ROOT
export PERL_MM_USE_DEFAULT=1 MODULEBUILDRC=/dev/null
/usr/bin/perl Build.PL --create_packlist=0
./Build
}
check()
{
cd "$_dist-$pkgver"
unset PERL5LIB PERL_LOCAL_LIB_ROOT
./Build test
}
package()
{
cd "$_dist-$pkgver"
unset PERL5LIB PERL_LOCAL_LIB_ROOT
./Build install --installdirs=vendor --destdir="$pkgdir"
}
END
},
'DateTime-Format-RFC3339' => {
meta => {
abstract => 'Parse and format RFC3339 datetime strings',
author => 'IKEGAMI',
checksum => '3a5e64e7beaafd2c64a12109e3cc0fed3db3f893b0323b43b52964fc2c0c8496',
dependency => [
{
module => 'ExtUtils::MakeMaker',
phase => 'configure',
relationship => 'requires',
version => '6.74',
},
{
module => 'Test::More',
phase => 'test',
relationship => 'requires',
version => '0',
},
{
module => 'Test::Pod',
phase => 'test',
relationship => 'recommends',
version => '1.22',
},
{
module => 'Pod::Coverage',
phase => 'develop',
relationship => 'requires',
version => '0.18',
},
{
module => 'Test::Pod::Coverage',
phase => 'develop',
relationship => 'requires',
version => '1.08',
},
{
module => 'perl',
phase => 'runtime',
relationship => 'requires',
version => '5.01',
},
{
module => 'warnings',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DateTime',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'version',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'strict',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
],
dist => 'DateTime-Format-RFC3339',
download_url =>
'https://cpan.metacpan.org/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v1.10.0.tar.gz',
has_license => 'LICENSE.txt',
has_module_install => false,
has_multi_licenses => false,
has_xs => false,
license => [
'unknown',
'unrestricted',
],
name => 'DateTime-Format-RFC3339-v1.10.0',
spdx_expression => undef,
version => 'v1.10.0',
},
arch_prereqs => {
checkdepends => ['perl-test-simple'],
depends => [
'perl-datetime',
'perl-version',
'perl>=5.10.0',
],
makedepends => ['perl-extutils-makemaker>=6.74'],
optdepends => ['perl-test-pod>=1.22'],
},
pkgbuild => <<~'END',
# Maintainer: Your Name <email@domain.tld>
_author=IKEGAMI
_dist=DateTime-Format-RFC3339
pkgname=perl-${_dist@L}
pkgver=v1.10.0
pkgrel=1
pkgdesc='Parse and format RFC3339 datetime strings'
arch=('any')
url=https://metacpan.org/dist/$_dist
# Multiple licenses listed in metadata; manual inspection is advised to
# construct a proper SPDX expression.
license=(
'unknown' # License not provided in metadata.
# Unknown SPDX ID; manual inspection is advised.
'unknown' # Not an OSI approved license, but not restricted.
# Unknown SPDX ID; manual inspection is advised.
)
depends=(
'perl-datetime'
'perl-version'
'perl>=5.10.0'
)
makedepends=('perl-extutils-makemaker>=6.74')
checkdepends=('perl-test-simple')
optdepends=('perl-test-pod>=1.22')
options=('!emptydirs')
source=("https://cpan.metacpan.org/authors/id/${_author::1}/${_author::2}/$_author/$_dist-$pkgver.tar.gz")
sha256sums=('3a5e64e7beaafd2c64a12109e3cc0fed3db3f893b0323b43b52964fc2c0c8496')
build()
{
cd "$_dist-$pkgver"
unset PERL_MM_OPT PERL5LIB PERL_LOCAL_LIB_ROOT
export PERL_MM_USE_DEFAULT=1
/usr/bin/perl Makefile.PL NO_PACKLIST=1 NO_PERLLOCAL=1
make
}
check()
{
cd "$_dist-$pkgver"
unset PERL5LIB PERL_LOCAL_LIB_ROOT
make test
}
package()
{
cd "$_dist-$pkgver"
unset PERL5LIB PERL_LOCAL_LIB_ROOT
make install INSTALLDIRS=vendor DESTDIR="$pkgdir"
install -Dm644 LICENSE.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
}
END
},
'Devel-REPL' => {
meta => {
abstract => 'A modern perl interactive shell',
t/lib/TestData.pm view on Meta::CPAN
module => 'Path::Class::File',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'perl',
phase => 'runtime',
relationship => 'requires',
version => '5.008',
},
{
module => 'LWP::UserAgent',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Exporter',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Readonly',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Plack::MIME',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'MooseX::ClassAttribute',
phase => 'runtime',
relationship => 'requires',
version => '0.27',
},
{
module => 'HTTP::Request::Common',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Cwd::Guard',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Term::ANSIColor',
phase => 'runtime',
relationship => 'requires',
version => '2.02',
},
{
module => 'DateTime',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Path::Class',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Plack::Runner',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'base',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Digest::SHA',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Authen::Simple::Passwd',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'File::Spec',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Try::Tiny',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'overload',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DateTime::TimeZone::OffsetOnly',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Path::Class::Dir',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Proc::Fork',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'URI::Escape',
phase => 'runtime',
relationship => 'requires',
version => '3.31',
},
{
module => 'Plack::Middleware::Auth::Basic',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DBIx::Class',
phase => 'runtime',
relationship => 'requires',
version => '0.08200',
},
{
module => 'DateTime::TimeZone',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'File::Which',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Encode',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'App::Cmd::Command::help',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'HTTP::Date',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'IO::Interactive',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'MooseX::MarkAsMethods',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'JSON',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'strict',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DateTime::TimeZone::Local::Unix',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'Scalar::Util',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DBIx::Class::Core',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'MooseX::Types',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'URI::file',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'App::Cmd::Setup',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'CPAN::Checksums',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'MooseX::SetOnce',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'IO::Prompt',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'DBIx::Class::Schema',
phase => 'runtime',
relationship => 'requires',
version => '0',
},
{
module => 'HTTP::Status',
( run in 0.584 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )