diff options
author | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2011-01-24 02:06:13 +0000 |
---|---|---|
committer | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2011-01-24 02:06:13 +0000 |
commit | 2755228f2f64ffc2a16660bd198f98e46457eb32 (patch) | |
tree | 7ba9cfb93c1ff0eb280b11b2be3c97f12c0b2a64 /t | |
parent | 58385d5d44c85cf25d286ffa1c79e695fa512646 (diff) | |
download | perl-URPM-2755228f2f64ffc2a16660bd198f98e46457eb32.tar perl-URPM-2755228f2f64ffc2a16660bd198f98e46457eb32.tar.gz perl-URPM-2755228f2f64ffc2a16660bd198f98e46457eb32.tar.bz2 perl-URPM-2755228f2f64ffc2a16660bd198f98e46457eb32.tar.xz perl-URPM-2755228f2f64ffc2a16660bd198f98e46457eb32.zip |
add regression tests for getting tags from rpmdb
Diffstat (limited to 't')
-rw-r--r-- | t/rpmdb.t | 92 |
1 files changed, 91 insertions, 1 deletions
@@ -2,7 +2,7 @@ use strict ; use warnings ; -use Test::More tests => 15; +use Test::More tests => 16; use File::Copy qw (copy); use File::Path qw (make_path remove_tree); use Cwd qw (abs_path); @@ -86,3 +86,93 @@ $db->traverse_tag("name", ["null-dummy"], sub { is($pkg->name, "null-dummy", "querying newly converted DB"); }); +if($db) { + URPM::DB::close($db); +} + +$db = URPM::DB::open(); + +my $errors = 0; +$db->traverse( sub { + my ($pkg) = @_; + my @fullname = $pkg->fullname; + my $epoch = $pkg->epoch; + my $name = $pkg->name; + my $version = $pkg->version; + my $release = $pkg->release; + my $disttag = $pkg->disttag; + my $distepoch = $pkg->distepoch; + my $arch = $pkg->arch; + + if ($name ne $fullname[0]) { + print "name[" . $pkg->fullname . "]: $name != " . $fullname[0] . "\n"; + $errors++; + } + if ($version ne $fullname[1]) { + print "version[" . $pkg->fullname . "]: $version != " . $fullname[1] . "\n"; + $errors++; + } + if ($release ne $fullname[2]) { + print "release[" . $pkg->fullname . "]: $release != " . $fullname[2] . "\n"; + $errors++; + } + if ($disttag ne $fullname[3]) { + print "disttag[" . $pkg->fullname . "]: $name != " . $fullname[3] . "\n"; + $errors++; + } + if ($distepoch ne $fullname[4]) { + print "distepoch[" . $pkg->fullname . "]: $distepoch != " . $fullname[4] . "\n"; + $errors++; + } + if ($arch ne $fullname[5]) { + print "arch[" . $pkg->fullname . "]: $arch != " . $fullname[5] . "\n"; + $errors++; + } + if ($pkg->fullname . ".rpm" ne $pkg->filename) { + print "filename[" . $pkg->fullname . "]: " . $pkg->filename . "\n"; + $errors++; + } + + if (!$pkg->group) { + print $pkg->fullname . ": no group\n"; + $errors++; + } + if (!$pkg->filesize) { + print $pkg->fullname . ": no filesize\n"; + $errors++; + } + if (!$pkg->summary) { + print $pkg->fullname . ": no summary\n"; + $errors++; + } + if (!$name) { + print $pkg->fullname . ": no name\n"; + $errors++; + } + if (!$version and $version ne "0") { + print $pkg->version . ": no version\n"; + $errors++; + } + if (!$release and $release ne "0") { + print $pkg->fullname . ": no release\n"; + $errors++; + } + if (!$arch and $pkg->group ne "Public Keys") { + print $pkg->fullname . ": no arch\n"; + $errors++; + } + + my $expectedevr = $pkg->version . "-" . $pkg->release . ($pkg->distepoch ? ":" . $pkg->distepoch : ""); + if ($expectedevr ne $pkg->evr and "$epoch:$expectedevr" ne $pkg->evr and $pkg->name ne "gpg-pubkey") { + print "evr[" . $pkg->fullname . "]: $expectedevr != " . $pkg->evr . "\n"; + $errors++; + } + + my $expectedfullname = "$name-$version-$release" . ($disttag ? "-$disttag" : "") . ($distepoch ? $distepoch : "") . ($arch ? ".$arch" : ""); + if($pkg->fullname ne $expectedfullname) { + print "fullname: " . $pkg->fullname . " != $expectedfullname\n"; + $errors++; + } + }); + +is($errors, 0, "tags check"); |