Date-Gregorian
view release on metacpan or search on metacpan
t/95_versions.t view on Meta::CPAN
# Copyright (c) 2006-2019 by Martin Becker, Blaubeuren.
# This package is free software; you can distribute it and/or modify it
# under the terms of the Artistic License 2.0 (see LICENSE file).
# Before 'make install' is performed this script should be runnable with
# 'make test'. After 'make install' it should work as 'perl 90_pod.t'
# check if version numbers match
use strict;
use Date::Gregorian;
sub test {
my ($n, $ok) = @_;
print !$ok && 'not ', "ok $n\n";
}
sub skip {
my ($from, $to, $reason) = @_;
print map "ok $_ # SKIP $reason\n", $from..$to;
}
sub skip_all {
my ($reason) = @_;
print "1..0 # SKIP $reason\n";
exit 0;
}
sub use_or_bail {
my ($module) = @_;
eval "use $module";
skip_all "$module not available" if $@;
}
$| = 1;
undef $/;
my $README = 'README';
my $META_YML = 'META.yml';
my $distname = 'Date-Gregorian';
my $modname = 'Date::Gregorian';
my $env_maint = 'MAINTAINER_OF_DATE_GREGORIAN';
if (!$ENV{$env_maint}) {
skip_all "setenv $env_maint=1 to run these tests";
}
use_or_bail 'File::Spec';
use_or_bail 'File::Basename';
use_or_bail 'FindBin';
my $distroot = '.' eq $FindBin::Bin? '..': dirname($FindBin::Bin);
print "1..9\n";
my $mod_version = '' . $Date::Gregorian::VERSION;
$mod_version = 'undef' if !defined $mod_version;
print "# module version is $mod_version\n";
test 1, $mod_version =~ /^\d+\.\d+\z/;
if ($distroot =~ /\b\Q$distname\E-(\d+\.\d+)(?:-\w+)?\z/) {
test 2, $mod_version eq $1;
}
else {
skip 2, 2, "not running in numbered distro dir";
}
my $readme_file = File::Spec->catfile($distroot, $README);
if (open FILE, "< $readme_file") {
my $readme = <FILE>;
close FILE;
my $found =
$readme =~ /^This is Version\s+(\d+\.\d+)\s+of\s+(\S+)\.$/mi;
test 3, $found;
if ($found) {
test 4, $2 eq $modname || $2 eq $distname;
test 5, $1 eq $mod_version;
}
else {
skip 4, 5, "unknown $README version";
}
}
else {
skip 3, 5, "cannot open $README file";
}
my $metayml_file = File::Spec->catfile($distroot, $META_YML);
if (open FILE, "< $metayml_file") {
my $metayml = <FILE>;
close FILE;
my $found_dist = $metayml =~ /^name:\s+(\S+)$/mi;
test 6, $found_dist;
if ($found_dist) {
test 7, $1 eq $distname;
}
else {
skip 7, 7, "unknown $META_YML dist name";
}
my $found_vers = $metayml =~ /^version:\s+'?(\S+?)'?$/mi;
test 8, $found_vers;
if ($found_dist) {
test 9, $1 eq $mod_version;
}
else {
( run in 2.192 seconds using v1.01-cache-2.11-cpan-d7a12ab2c7f )