summaryrefslogtreecommitdiff
path: root/pkgtools
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2022-07-30 17:06:29 +0000
committerrillig <rillig@pkgsrc.org>2022-07-30 17:06:29 +0000
commitd1b9876347f9f1c4ad9ced95744b21f240e97468 (patch)
tree2006c1ac2fa1d0cf2902d1fdd10fde20873a12fe /pkgtools
parent57ffca24cfad6f217c2487355cb0ea518e401b53 (diff)
downloadpkgsrc-d1b9876347f9f1c4ad9ced95744b21f240e97468.tar.gz
lintpkgsrc: test versioned packages, minor cleanup
Diffstat (limited to 'pkgtools')
-rwxr-xr-xpkgtools/lintpkgsrc/files/lintpkgsrc.pl21
-rw-r--r--pkgtools/lintpkgsrc/files/t/packages.t23
-rw-r--r--pkgtools/lintpkgsrc/files/t/pkgversion.t3
3 files changed, 35 insertions, 12 deletions
diff --git a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
index 737702cfe76..bd48e76cf99 100755
--- a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
+++ b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
@@ -1,6 +1,6 @@
#!@PERL5@
-# $NetBSD: lintpkgsrc.pl,v 1.39 2022/07/30 16:26:14 rillig Exp $
+# $NetBSD: lintpkgsrc.pl,v 1.40 2022/07/30 17:06:29 rillig Exp $
# Written by David Brownlee <abs@netbsd.org>.
#
@@ -22,7 +22,8 @@ use File::Basename;
use IPC::Open3;
use Cwd 'realpath', 'getcwd';
-# PkgVer is a unique package + version.
+# PkgVer is a PKGBASE + PKGVERSION, including some of the variables that
+# have been extracted from the package Makefile.
#
package PkgVer;
@@ -87,7 +88,8 @@ sub store($) {
}
}
-# Pkgs is all versions of a given package (eg: apache-1.x and apache-2.x)
+# Pkgs collects all versions of a given PKGBASE, e.g. apache-1.3.27 and
+# apache-2.0.46.
#
package Pkgs;
@@ -106,6 +108,8 @@ sub new($@) {
return $self;
}
+# Returns all available versions of the package, in decreasing
+# alphabetical(!) order.
sub versions($) {
my $self = shift;
@@ -117,16 +121,19 @@ sub pkg($) {
$self->{_pkg};
}
+# Returns all available versioned packages of this PKGBASE, in decreasing
+# alphabetical(!) order.
sub pkgver($@) {
my $self = shift;
+ my $pkgvers = $self->{_pkgver};
if (@_) {
- if ($self->{_pkgver}{$_[0]}) {
- return ($self->{_pkgver}{$_[0]});
+ if ($pkgvers->{$_[0]}) {
+ return ($pkgvers->{$_[0]});
}
return;
}
- return sort { $b->ver() cmp $a->ver() } values %{$self->{_pkgver}};
+ return sort { $b->ver cmp $a->ver } values %{$pkgvers};
}
sub latestver($) {
@@ -1787,4 +1794,4 @@ sub main() {
}
}
-main() unless defined $ENV{'TESTING_LINTPKGSRC'};
+main() unless caller();
diff --git a/pkgtools/lintpkgsrc/files/t/packages.t b/pkgtools/lintpkgsrc/files/t/packages.t
index 3b7bc94a271..ab9e9163486 100644
--- a/pkgtools/lintpkgsrc/files/t/packages.t
+++ b/pkgtools/lintpkgsrc/files/t/packages.t
@@ -1,13 +1,12 @@
-# $NetBSD: packages.t,v 1.1 2022/07/30 16:20:18 rillig Exp $
+# $NetBSD: packages.t,v 1.2 2022/07/30 17:06:29 rillig Exp $
use strict;
use warnings;
use Capture::Tiny 'capture';
use Test;
-BEGIN { plan tests => 1; }
+BEGIN { plan tests => 8; }
-$ENV{'TESTING_LINTPKGSRC'} = 'yes';
require('../lintpkgsrc.pl');
sub test_package_variables() {
@@ -18,6 +17,24 @@ sub test_package_variables() {
ok($pkgbase_1_0->var('NAME'), 'value');
ok($pkgbase_1_0->var('undefined'), undef);
+
+ my $pkgbase_2_0 = $pkglist->add('pkgbase', '2.0');
+ my $pkgbase_1_5 = $pkglist->add('pkgbase', '1.5');
+ my $pkgbase_1_10 = $pkglist->add('pkgbase', '1.10');
+
+ $pkgbase_2_0->var('COMMENT', 'Version 2 of the package');
+
+ ok($pkglist->pkgs('unknown-pkgbase'), undef);
+
+ # The versions are sorted in decreasing alphabetical order.
+ my $versions = join(', ', $pkglist->pkgs('pkgbase')->versions());
+ ok($versions, '2.0, 1.5, 1.10, 1.0');
+
+ # The versioned packages are sorted in decreasing alphabetical order.
+ my @pkgvers = $pkglist->pkgver('pkgbase');
+ ok(join(', ', map { $_->ver } @pkgvers), '2.0, 1.5, 1.10, 1.0');
+ ok($pkgvers[0], $pkgbase_2_0);
+ ok($pkgvers[3], $pkgbase_1_0);
}
# Demonstrate how the package data is stored in the cache file.
diff --git a/pkgtools/lintpkgsrc/files/t/pkgversion.t b/pkgtools/lintpkgsrc/files/t/pkgversion.t
index 77ffd9aade2..e83a703aaae 100644
--- a/pkgtools/lintpkgsrc/files/t/pkgversion.t
+++ b/pkgtools/lintpkgsrc/files/t/pkgversion.t
@@ -1,11 +1,10 @@
-# $NetBSD: pkgversion.t,v 1.1 2022/07/30 10:11:45 rillig Exp $
+# $NetBSD: pkgversion.t,v 1.2 2022/07/30 17:06:29 rillig Exp $
use strict;
use warnings;
use Test;
BEGIN { plan tests => 5; }
-$ENV{'TESTING_LINTPKGSRC'} = 'yes';
require('../lintpkgsrc.pl');
ok(pkgversioncmp('3.4', '<', '3.4'), '');