diff options
| author | rillig <rillig@pkgsrc.org> | 2022-08-12 22:18:35 +0000 |
|---|---|---|
| committer | rillig <rillig@pkgsrc.org> | 2022-08-12 22:18:35 +0000 |
| commit | ed6d6215ec64199bc05c81bc0ff67258743cc41e (patch) | |
| tree | 12774e780a125a1ada26f196d82f4bb8fc214793 /pkgtools/lintpkgsrc/files/t | |
| parent | 27965dbe11b2d5a959d98d08689a43636d05269b (diff) | |
| download | pkgsrc-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.t | 87 | ||||
| -rw-r--r-- | pkgtools/lintpkgsrc/files/t/pkgversion.t | 10 |
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 ? '==' |
