summaryrefslogtreecommitdiff
path: root/pkgtools/lintpkgsrc/files/t
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2022-08-12 22:18:35 +0000
committerrillig <rillig@pkgsrc.org>2022-08-12 22:18:35 +0000
commited6d6215ec64199bc05c81bc0ff67258743cc41e (patch)
tree12774e780a125a1ada26f196d82f4bb8fc214793 /pkgtools/lintpkgsrc/files/t
parent27965dbe11b2d5a959d98d08689a43636d05269b (diff)
downloadpkgsrc-ed6d6215ec64199bc05c81bc0ff67258743cc41e.tar.gz
lintpkgsrc: clean up subroutine names, test conditionals
Diffstat (limited to 'pkgtools/lintpkgsrc/files/t')
-rw-r--r--pkgtools/lintpkgsrc/files/t/parse_makefile.t87
-rw-r--r--pkgtools/lintpkgsrc/files/t/pkgversion.t10
2 files changed, 78 insertions, 19 deletions
diff --git a/pkgtools/lintpkgsrc/files/t/parse_makefile.t b/pkgtools/lintpkgsrc/files/t/parse_makefile.t
index e5f5c4d137d..5c76ab41a7a 100644
--- a/pkgtools/lintpkgsrc/files/t/parse_makefile.t
+++ b/pkgtools/lintpkgsrc/files/t/parse_makefile.t
@@ -1,4 +1,4 @@
-# $NetBSD: parse_makefile.t,v 1.6 2022/08/10 21:48:47 rillig Exp $
+# $NetBSD: parse_makefile.t,v 1.7 2022/08/12 22:18:35 rillig Exp $
use strict;
use warnings;
@@ -10,31 +10,46 @@ BEGIN { plan tests => 29, onfail => sub { die } }
require('../lintpkgsrc.pl');
-sub test_expand_var() {
+sub enable_debug_logging() {
+ export_for_test()->{opt}->{D} = 1;
+}
+
+sub disable_debug_logging() {
+ export_for_test()->{opt}->{D} = 0;
+}
+
+sub test_expand_exprs() {
my %vars = (
CFLAGS => '${CFLAGS_OPT} ${CFLAGS_WARN} ${CFLAGS_ERR}',
CFLAGS_WARN => '${CFLAGS_WARN_ALL}',
CFLAGS_OPT => '-Os',
CFLAGS_ERR => '${CFLAGS_WARN_ALL:M*error=*}',
+ '2_DOLLAR' => '$${CFLAGS_OPT}',
+ '3_DOLLAR' => '$$${CFLAGS_OPT}',
);
- my $cflags = expand_var('<${CFLAGS}>', \%vars);
+ ok(expand_exprs('<${CFLAGS}>', \%vars),
+ '<-Os M_a_G_i_C_uNdEfInEd ${CFLAGS_WARN_ALL:M*error=*}>');
- ok($cflags, '<-Os M_a_G_i_C_uNdEfInEd ${CFLAGS_WARN_ALL:M*error=*}>')
+ # FIXME: '$$' must be preserved, the result must be '$${CFLAGS_OPT}'.
+ ok(expand_exprs('<${2_DOLLAR}>', \%vars),
+ '<$-Os>');
+ ok(expand_exprs('<${3_DOLLAR}>', \%vars),
+ '<$$-Os>');
}
sub test_parse_makefile_vars() {
my $dir = File::Temp->newdir();
my $file = "$dir/filename.mk";
- write_file($file,
- "# comment\n",
- "VAR=\tvalue\n",
- "COMMENT=\tvalue#comment\n",
- "MULTI=\tone\\\n",
- "\ttwo\\\n",
- "three#comment\n"
- );
+ write_file($file, map { "$_\n" } (
+ '# comment',
+ "VAR=\tvalue",
+ "COMMENT=\tvalue#comment",
+ "MULTI=\tone\\",
+ "\ttwo\\",
+ 'three#comment',
+ ));
my $vars = parse_makefile_vars($file, undef);
@@ -52,11 +67,39 @@ sub test_parse_makefile_vars() {
ok($vars->{VAR}, 'value');
}
+sub test_parse_makefile_vars_cond() {
+ my $dir = File::Temp->newdir();
+ my $file = "$dir/filename.mk";
+
+ write_file($file, map { "$_\n" } (
+ '.if ${COND} == then',
+ 'BRANCH= then',
+ '.elif ${COND} == elif',
+ 'BRANCH= elif',
+ '.else',
+ 'BRANCH= else',
+ '.endif',
+ ));
+
+ my $vars;
+ export_for_test()->{default_vars}->{COND} = 'then';
+ $vars = parse_makefile_vars($file, undef);
+ ok($vars->{BRANCH}, 'then');
+
+ export_for_test()->{default_vars}->{COND} = 'elif';
+ $vars = parse_makefile_vars($file, undef);
+ ok($vars->{BRANCH}, 'elif');
+
+ # XXX: The string 'anything else' would not work due to the space.
+ export_for_test()->{default_vars}->{COND} = 'anything_else';
+ $vars = parse_makefile_vars($file, undef);
+ ok($vars->{BRANCH}, 'else');
+}
+
sub test_expand_modifiers() {
my $vars = {
REF => 'VALUE',
};
- export_for_test()->{opt}->{D} = 1;
expand_modifiers('file.mk', 'VAR', '<', 'REF', 'S,U,X,', '>', $vars);
@@ -112,7 +155,23 @@ sub test_eval_mk_cond_func() {
ok(eval_mk_cond_func('target', 'anything', $vars), 0);
}
-test_expand_var();
+sub test_parse_eval_make_false() {
+ my $vars = {
+ 'EMPTY' => '',
+ 'SPACE' => ' ',
+ 'WORD' => 'word',
+ 'WORDS' => 'word1 word2',
+ 'DEV_NULL' => '/dev/null',
+ };
+
+ # 1 means false, 0 means true.
+ ok(parse_eval_make_false('defined(UNDEF)', $vars), 1);
+ ok(parse_eval_make_false('defined(EMPTY)', $vars), 0);
+}
+
+test_expand_exprs();
test_parse_makefile_vars();
+test_parse_makefile_vars_cond();
test_expand_modifiers();
test_eval_mk_cond_func();
+test_parse_eval_make_false();
diff --git a/pkgtools/lintpkgsrc/files/t/pkgversion.t b/pkgtools/lintpkgsrc/files/t/pkgversion.t
index b075bfffaed..52ab9c6f7cb 100644
--- a/pkgtools/lintpkgsrc/files/t/pkgversion.t
+++ b/pkgtools/lintpkgsrc/files/t/pkgversion.t
@@ -1,4 +1,4 @@
-# $NetBSD: pkgversion.t,v 1.10 2022/08/04 05:50:54 rillig Exp $
+# $NetBSD: pkgversion.t,v 1.11 2022/08/12 22:18:35 rillig Exp $
use strict;
use warnings;
@@ -9,8 +9,8 @@ BEGIN { plan tests => 1781, onfail => sub { die } }
require('../lintpkgsrc.pl');
-ok(pkgversioncmp('3.4', '<', '3.4'), '');
-ok(pkgversioncmp('3.4', '<=', '3.4'), 1);
+ok(pkgversion_cmp('3.4', '<', '3.4'), '');
+ok(pkgversion_cmp('3.4', '<=', '3.4'), 1);
# See pkgtools/pkglint/files/pkgver/vercmp_test.go.
my @split_version_tests = (
@@ -80,8 +80,8 @@ foreach my $i (0 .. $#versions) {
foreach my $j (0 .. $#versions) {
foreach my $vi (@{$versions[$i]}) {
foreach my $vj (@{$versions[$j]}) {
- my $actual = pkgversioncmp($vi, '<', $vj) ? '<'
- : pkgversioncmp($vi, '<=', $vj) ? '=='
+ my $actual = pkgversion_cmp($vi, '<', $vj) ? '<'
+ : pkgversion_cmp($vi, '<=', $vj) ? '=='
: '>';
my $expected = $i < $j ? '<'
: $i == $j ? '=='