From 11e5ae7c28516e9740fb1aea599ed9e6b9cef2fe Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Sun, 26 Oct 2014 10:43:55 -0400 Subject: [PATCH] Module::Build testing --- lib/tap.bash | 5 +++++ t/mb.t | 22 ++++++++++++++++++++++ t/mb/.gitignore | 19 +++++++++++++++++++ t/mb/Build.PL | 14 ++++++++++++++ t/mb/Makefile.PL | 1 + t/mb/t/prereqs.t | 14 ++++++++++++++ 6 files changed, 75 insertions(+) create mode 100755 t/mb.t create mode 100644 t/mb/.gitignore create mode 100644 t/mb/Build.PL create mode 100644 t/mb/Makefile.PL create mode 100644 t/mb/t/prereqs.t diff --git a/lib/tap.bash b/lib/tap.bash index 5e252a7..098fa62 100644 --- a/lib/tap.bash +++ b/lib/tap.bash @@ -14,6 +14,11 @@ function plan { elif [ "$1" == "no" ]; then _tap_planned="$1" return 0 + elif [ "$1" == "0" ]; then + _tap_planned="0" + echo "1..0 # SKIP $2" + trap EXIT + exit 0 else _tap_planned="$1" echo "1..$1" diff --git a/t/mb.t b/t/mb.t new file mode 100755 index 0000000..b982ddf --- /dev/null +++ b/t/mb.t @@ -0,0 +1,22 @@ +#!/bin/bash +. lib/tap.bash + +if ! perl -e'require 5.008' 2>/dev/null; then + plan 0 'Perl 5.8 required' +fi + +( + cd t/mb + set -e + set -x + . $PERLBREW_ROOT/etc/bashrc + . $HELPERS_ROOT/init --auto + cpanm --quiet --installdeps --notest . + perl Build.PL && ./Build && ./Build test +) 2>&1 | note + +ok ${PIPESTATUS[0]} 'Module::Build dist with --auto' + +done_testing + +# vim: ft=sh diff --git a/t/mb/.gitignore b/t/mb/.gitignore new file mode 100644 index 0000000..5b912c4 --- /dev/null +++ b/t/mb/.gitignore @@ -0,0 +1,19 @@ +/MANIFEST +/MANIFEST.bak +/MANIFEST.SKIP +/MANIFEST.SKIP.bak +/Build +/_build/ +/META.* +/MYMETA.* +/Makefile +/Makefile.old +/README +/blib/ +/pm_to_blib +*~ +*# +.#* +/Travis-Test-Dist-MB-*/ +/Travis-Test-Dist-MB-*.tar.gz +/cover_db/ diff --git a/t/mb/Build.PL b/t/mb/Build.PL new file mode 100644 index 0000000..243e254 --- /dev/null +++ b/t/mb/Build.PL @@ -0,0 +1,14 @@ +use strict; +use warnings; +use Module::Build; + +Module::Build->new( + module_name => 'Travis::Test::Dist::MB', + dist_version => '0.01', + dist_author => 'SOMEONE', + dist_abstract => 'test module', + license => 'perl', + requires => { + 'Devel::GlobalPhase' => 0, + }, +)->create_build_script; diff --git a/t/mb/Makefile.PL b/t/mb/Makefile.PL new file mode 100644 index 0000000..6f95746 --- /dev/null +++ b/t/mb/Makefile.PL @@ -0,0 +1 @@ +die "This fine shouldn't be used."; diff --git a/t/mb/t/prereqs.t b/t/mb/t/prereqs.t new file mode 100644 index 0000000..306baca --- /dev/null +++ b/t/mb/t/prereqs.t @@ -0,0 +1,14 @@ +use strict; +use warnings; +use Test::More tests => 1; + +for my $prereq ( + ['Devel::GlobalPhase'], +) { + my ($mod, $installed) = @$prereq; + $installed = 1 if ! defined $installed; + (my $file = "$mod.pm") =~ s{::}{/}g; + my $worked = eval { require $file }; + $worked = !$worked if !$installed; + ok $worked, "$mod was " . ($installed ? '' : 'not ') . "installed"; +}