# -*- mode: cperl -*-
my $REPO = $ENV{PERL_REPOSITORY_APC_REPO};
my $Id = q$Id: apc.t 293 2008-02-22 08:33:10Z k $;
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
my $tests;
BEGIN { $tests = 20; $| = 1; print "1..$tests\n"; }
END {print "not ok 1\n" unless $loaded;}
$loaded = 1;
print "ok 1 # greets\n";
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
eval { Perl::Repository::APC->new };
if ($@) {
print "ok 2 # no repo, no object\n";
} else {
print "not ok 2\n";
}
if (defined $REPO and -d $REPO) {
my $i = 3;
my $apc = Perl::Repository::APC->new($REPO);
print "ok $i # ->new('$REPO')\n";
$i++;
my $pver;
$pver = $apc->get_to_version("perl",7100);
print "not " unless $pver eq "5.7.1";
print "ok $i # 7100 to 5.7.1\n";
$i++;
$pver = $apc->get_from_version("perl",7100);
print "not " unless $pver eq "5.7.0";
print "ok $i # 7100 from 5.7.0\n";
$i++;
$pver = $apc->get_from_version("maint-5.005",1656);
print "not " unless $pver eq "5.005_00";
print "ok $i @ 1656 from 5.005_00\n";
$i++;
$pver = $apc->get_from_version("maint-5.6",12823);
print "not " unless $pver eq "5.6.1";
print "ok $i # 12823/maint-5.6 from 5.6.1\n";
$i++;
$pver = $apc->get_from_version("perl",12823);
print "not " unless $pver eq "5.7.2";
print "ok $i # 12823/perl from 5.7.2\n";
$i++;
eval {$pver = $apc->get_from_version("perl",12822);}; # does not exist
print "not " unless $@;
print "ok $i # 12822 not exists exception\n";
$i++;
my $range;
$range = $apc->version_range("perl",17600,17700);
print "not " unless @$range == 2;
print "ok $i # [@$range]\n";
$i++;
$range = $apc->patch_range("perl",17600,17700);
print "not " unless @$range == 73;
print "ok $i # [@$range]\n";
$i++;
my $closest;
$closest = $apc->closest("perl",">",12821);
print "not " unless $closest == 12823;
print "ok $i # $closest\n";
$i++;
$closest = $apc->closest("perl","<",12821);
print "not " unless $closest == 12818;
print "ok $i # $closest\n";
$i++;
$closest = $apc->closest("perl",">",0);
print "not " unless $closest == 1;
print "ok $i # $closest\n";
$i++;
eval {$closest = $apc->closest("perl",">",999999990);};
print "not " unless $@;
print "ok $i # >999999990 exception\n";
$i++;
eval {$closest = $apc->closest("perl","<",0);};
print "not " unless $@;
print "ok $i # <0 exception\n";
$i++;
my $next;
$next = $apc->first_in_branch("maint-5.004");
print "not " unless $next eq "5.004_00";
print "ok $i # $next\n";
$i++;
$next = $apc->first_in_branch("perl");
print "not " unless $next eq "5.004_50";
print "ok $i # $next\n";
$i++;
$next = $apc->next_in_branch("5.6.0");
print "not " unless $next eq "5.7.0";
print "ok $i # $next\n";
$i++;
$range = $apc->patches("5.7.1");
my $res = @$range;
print "not " unless $res == 1820;
print "ok $i # $res\n";
$i++;
my @perl;
for (my $next = $apc->first_in_branch("perl");
$next;
$next = $apc->next_in_branch($next)
) {
push @perl, $next;
}
# warn "perl[@perl]";
} else {
warn "\n\n\a Skipping tests! If you want to run the tests against your copy
of APC, please set environment variable \$PERL_REPOSITORY_APC_REPO to
the path to your APC\n\n";
for (3..$tests) {
print "ok $_ # skip\n";
}
}