diff options
author | Luke T. Shumaker <lukeshu@parabola.nu> | 2024-02-21 13:09:57 -0700 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@parabola.nu> | 2024-02-21 13:23:54 -0700 |
commit | 9f7e53cfbda7957c07965859efedf933d929eabd (patch) | |
tree | d5e46fc03468dd9ff7a8c8d37ce118ad30d32683 | |
parent | a623a620f68ba19750fc4feba34d1d2db8cd08dc (diff) |
test: pkgbuild-check-nonfree.bats: Get stricter about exit codes
-rwxr-xr-x | src/pkgbuild-check-nonfree | 8 | ||||
-rw-r--r-- | test/cases/pkgbuild-check-nonfree.bats | 42 |
2 files changed, 35 insertions, 15 deletions
diff --git a/src/pkgbuild-check-nonfree b/src/pkgbuild-check-nonfree index ccc846b..6215f36 100755 --- a/src/pkgbuild-check-nonfree +++ b/src/pkgbuild-check-nonfree @@ -5,7 +5,7 @@ # Copyright (C) 2011 Joseph Graham (Xylon) <joe@t67.eu> # Copyright (C) 2010-2011 Joshua Ismael Haase Hernández (xihh) <hahj87@gmail.com> # Copyright (C) 2010-2012 Nicolás Reynolds <fauno@parabola.nu> -# Copyright (C) 2012-2013, 2017 Luke Shumaker <lukeshu@parabola.nu> +# Copyright (C) 2012-2013, 2017, 2024 Luke Shumaker <lukeshu@parabola.nu> # # License: GNU GPLv3+ # @@ -57,7 +57,11 @@ usage() { echo flag '-h' 'Show this message' } -# Make sure these match pkgbuild-summarize-nonfree + +# Make sure these match: +# - the usage() text above +# - pkgbuild-summarize-nonfree +# - pkgbuild-check-nonfree.bats declare -ri _E_OK=0 declare -ri _E_ERROR=1 declare -ri _E_LIC_UNKNOWN=2 diff --git a/test/cases/pkgbuild-check-nonfree.bats b/test/cases/pkgbuild-check-nonfree.bats index 36f6619..dc24862 100644 --- a/test/cases/pkgbuild-check-nonfree.bats +++ b/test/cases/pkgbuild-check-nonfree.bats @@ -13,53 +13,69 @@ setup() { eot } +# Make sure these match pkgbuild-check-nonfree +declare -rig _E_OK=0 +declare -rig _E_ERROR=1 +declare -rig _E_LIC_UNKNOWN=2 +declare -rig _E_LIC_NOGPL=4 +declare -rig _E_LIC_NONFREE=8 +declare -rig _E_DEP_NONFREE=16 +declare -rig _E_PKG_NONFREE=32 + +# Make sure these match pkgbuild-check-nonfree (libremessages) +declare -rig EXIT_SUCCESS=0 +declare -rig EXIT_FAILURE=0 + @test "pkgbuild-check-nonfree displays usage text" { # This test seems silly, but it makes sure that it is executable, - # syntactically correct, and loading libraries works. - LC_ALL=C pkgbuild-check-nonfree -h >$tmpdir/stdout 2>$tmpdir/stderr - status=$? - + # syntactically correct, and loading libraries works. + LC_ALL=C pkgbuild-check-nonfree -h >$tmpdir/stdout 2>$tmpdir/stderr || status=$? [[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]] empty $tmpdir/stderr - [[ $status == 0 ]] + [[ $status == $_E_OK ]] +} + +@test "pkgbuild-check-nonfree errors on invalid flags" { + pkgbuild-check-nonfree -x >$tmpdir/stdout 2>$tmpdir/stderr || status=$? + empty $tmpdir/stdout + not empty $tmpdir/stderr + [[ $status == $_E_ERROR ]] } @test "pkgbuild-check-nonfree succeeds for free depends" { pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.free >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - empty $tmpdir/stdout not empty $tmpdir/stderr - [[ $status == 0 ]] + [[ $status == $_E_OK ]] } @test "pkgbuild-check-nonfree succeeds for nonfree depend with replacement" { pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.nonfree-replacement >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - empty $tmpdir/stdout not empty $tmpdir/stderr - [[ $status == 0 ]] + [[ $status == $_E_OK ]] } @test "pkgbuild-check-nonfree fails for nonfree depend" { pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.nonfree >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - [[ $status != 0 ]] empty $tmpdir/stdout not empty $tmpdir/stderr + [[ $status == $_E_DEP_NONFREE ]] local pcn_stat=$status + status=0 pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - [[ $status != 0 ]] empty $tmpdir/stdout not empty $tmpdir/stderr + [[ $status == $EXIT_FAILURE ]] } @test "pkgbuild-check-nonfree fails when there is no blacklist" { rm $XDG_CACHE_HOME/libretools/blacklist.txt pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.free >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - empty $tmpdir/stdout not empty $tmpdir/stderr - [[ $status != 0 ]] && [[ $status != 15 ]] + [[ $status == $_E_ERROR ]] } |