From a06ce7869a437f4be4c5a9c974ea3917ebe2fd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=98yvind=20Karlsen?= Date: Fri, 6 May 2011 23:54:48 +0000 Subject: add a test for src.rpm synthesis --- t/res/synthesis.hdlist_src.xz | Bin 0 -> 132680 bytes t/synthesis.t | 186 +++++++++++++++++++++--------------------- 2 files changed, 95 insertions(+), 91 deletions(-) create mode 100644 t/res/synthesis.hdlist_src.xz diff --git a/t/res/synthesis.hdlist_src.xz b/t/res/synthesis.hdlist_src.xz new file mode 100644 index 0000000..2e53304 Binary files /dev/null and b/t/res/synthesis.hdlist_src.xz differ diff --git a/t/synthesis.t b/t/synthesis.t index 2281267..e2bd9a8 100644 --- a/t/synthesis.t +++ b/t/synthesis.t @@ -2,7 +2,7 @@ use strict ; use warnings ; -use Test::More tests => 95; +use Test::More tests => 96; use URPM; chdir 't' if -d 't'; @@ -151,101 +151,105 @@ ok(@provides == 1); ok($provides[0] eq 'glibc-devel'); SKIP: { - my $synthesis = "res/synthesis.hdlist_distepoch.xz"; - if (!(-r $synthesis)) { - skip "$synthesis missing, only found in svn", 1; - } - - my $urpm = new URPM; - - $urpm->parse_synthesis($synthesis); - - my $errors = 0; - $urpm->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++; - } - - if ($pkg->name ne "gpg-pubkey") { - - 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"; + sub syntcheck { + my ($synthesis) = @_; + if (!(-r $synthesis)) { + skip "$synthesis missing, only found in svn", 1; + } + + my $urpm = new URPM; + + $urpm->parse_synthesis($synthesis); + + my $errors = 0; + $urpm->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++; } - my $expectedfullname = "$name-$version-$release" . ($disttag ? "-$disttag" : "") . ($distepoch ? $distepoch : "") . ($arch ? ".$arch" : ""); - if($pkg->fullname ne $expectedfullname) { - print "fullname: " . $pkg->fullname . " != $expectedfullname\n"; + 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++; } - } - }); - is($errors, 0, "fields check"); + if ($pkg->name ne "gpg-pubkey") { + 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, "$synthesis fields check"); + + } + syntcheck("res/synthesis.hdlist_distepoch.xz"); + syntcheck("res/synthesis.hdlist_src.xz"); } -- cgit v1.2.1