Dpkg

 view release on metacpan or  search on metacpan

lib/Test/Dpkg.pm  view on Meta::CPAN


        # Only check modules, scripts are documented in man pages.
        return unless $module =~ s/\.pm$//;

        my $mod = Module::Metadata->new_from_file($File::Find::name);

        # As a first step just check public modules (version > 0.xx).
        return if $mod->version() =~ m/^0\.\d\d$/;

        $module =~ s{^\Q$File::Find::topdir\E/}{};
        $module =~ s{/}{::}g;

        return if exists $modules_todo{$module};

        push @modules, $module;
    };

    _test_scan_files($scan_perl_modules, [ _test_get_perl_dirs() ]);

    return @modules;
}

sub test_needs_author
{
    if (not $ENV{AUTHOR_TESTING}) {
        plan skip_all => 'author test';
    }
}

sub test_needs_module
{
    my ($module, @imports) = @_;
    my ($package) = caller;

    require version;
    my $version = '';
    if (@imports >= 1 and version::is_lax($imports[0])) {
        $version = shift @imports;
    }

    eval qq{
        package $package;
        use $module $version \@imports;
        1;
    } or do {
        plan skip_all => "requires module $module $version";
    }
}

sub test_needs_command
{
    my $command = shift;

    if (not can_run($command)) {
        plan skip_all => "requires command $command";
    }
}

my @openpgp_backends = (
    {
        backend => 'gpg',
        cmd => 'gpg-sq',
        cmdv => 'gpgv-sq',
    },
    {
        backend => 'gpg',
        cmd => 'gpg',
        cmdv => 'gpgv',
    },
    {
        backend => 'sq',
        cmd => 'sq',
        cmdv => 'sqv',
    },
    {
        backend => 'sop',
        cmd => 'sop',
        cmdv => 'sopv',
    },
    {
        backend => 'sop',
        cmd => 'sqop',
        cmdv => 'sqopv',
    },
    {
        backend => 'sop',
        cmd => 'rsop',
        cmdv => 'rsopv',
    },
    {
        backend => 'sop',
        cmd => 'gosop',
    },
    {
        backend => 'sop',
        cmd => 'pgpainless-cli',
    },
);

sub test_needs_openpgp_backend
{
    my @have_backends;
    foreach my $backend (@openpgp_backends) {
        my $name = $backend->{backend};
        my $cmd = $backend->{cmd} // q();
        my $cmdv = $backend->{cmdv} // q();

        my $have_cmd = $cmd eq 'none' ? 0 : can_run($cmd);
        my $have_cmdv = $cmdv eq 'none' ? 0 : can_run($cmdv);

        next unless ($have_cmd || $have_cmdv);

        my $have_backend = {
            backend => $name,
        };
        $have_backend->{cmd} = $cmd if $have_cmd;
        $have_backend->{cmdv} = $cmdv if $have_cmdv;

        push @have_backends, $have_backend;

        if ($have_cmd && $have_cmdv) {
            push @have_backends, {
                backend => $name,
                cmd => $cmd,
                cmdv => 'none',
            };
            push @have_backends, {
                backend => $name,



( run in 1.406 second using v1.01-cache-2.11-cpan-df04353d9ac )