summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@parabola.nu>2024-02-21 13:09:57 -0700
committerLuke T. Shumaker <lukeshu@parabola.nu>2024-02-21 13:23:54 -0700
commit9f7e53cfbda7957c07965859efedf933d929eabd (patch)
treed5e46fc03468dd9ff7a8c8d37ce118ad30d32683
parenta623a620f68ba19750fc4feba34d1d2db8cd08dc (diff)
test: pkgbuild-check-nonfree.bats: Get stricter about exit codes
-rwxr-xr-xsrc/pkgbuild-check-nonfree8
-rw-r--r--test/cases/pkgbuild-check-nonfree.bats42
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 ]]
}