summaryrefslogtreecommitdiff
path: root/test/cases/pkgbuild-check-nonfree.bats
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/pkgbuild-check-nonfree.bats')
-rw-r--r--test/cases/pkgbuild-check-nonfree.bats145
1 files changed, 129 insertions, 16 deletions
diff --git a/test/cases/pkgbuild-check-nonfree.bats b/test/cases/pkgbuild-check-nonfree.bats
index 36f6619..ffd8de8 100644
--- a/test/cases/pkgbuild-check-nonfree.bats
+++ b/test/cases/pkgbuild-check-nonfree.bats
@@ -9,57 +9,170 @@ setup() {
eot
install -Dm644 /dev/stdin "$XDG_CACHE_HOME/libretools/blacklist.txt" <<-eot
linux:linux-libre:nonfree blobs and firmwares
+ rubygemsx:rubygemsx:repackaged
skype
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-summarize-nonfree (libremessages)
+declare -rig EXIT_SUCCESS=0
+declare -rig EXIT_FAILURE=1
+
+# basic operation ##############################################################
+
@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 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 == $_E_ERROR ]]
+}
+
+# PKGBUILD codes ###############################################################
+
+# basic _E_OK
@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 == $_E_OK ]]
+}
+# _E_DEP_LIC_UNKNOWN
+@test "pkgbuild-check-nonfree warns about unknown licenses" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.lic-unknown >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $_E_LIC_UNKNOWN ]]
+
+ local pcn_stat=$status
+ status=0
+
+ pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
empty $tmpdir/stdout
not empty $tmpdir/stderr
- [[ $status == 0 ]]
+ [[ $status == $EXIT_SUCCESS ]]
}
-@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=$?
+# _E_DEP_LIC_NOGPL
+@test "pkgbuild-check-nonfree warns about GPL-incompatible licenses" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.lic-nogpl >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $_E_LIC_NOGPL ]]
+
+ local pcn_stat=$status
+ status=0
+
+ pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $EXIT_SUCCESS ]]
+}
+# _E_DEP_LIC_NONFREE
+@test "pkgbuild-check-nonfree fails on nonfree licenses" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.lic-nonfree >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
empty $tmpdir/stdout
not empty $tmpdir/stderr
- [[ $status == 0 ]]
+ [[ $status == $_E_LIC_NONFREE ]]
+
+ local pcn_stat=$status
+ status=0
+
+ pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $EXIT_FAILURE ]]
}
+# _E_DEP_NONFREE
+@test "pkgbuild-check-nonfree succeeds for repackaged depend" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.dep-repackaged >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $_E_OK ]]
+}
+@test "pkgbuild-check-nonfree succeeds for nonfree depend with replacement" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.dep-nonfree-replacement >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $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 ]]
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.dep-nonfree >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
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
+# _E_PKG_NONFREE
+@test "pkgbuild-check-nonfree succeeds for repackaged package" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.pkg-repackaged >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $_E_OK ]]
+}
+@test "pkgbuild-check-nonfree fails for package with replacement" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.pkg-nonfree-replacement >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ echo [[ $status == $_E_PKG_NONFREE ]]
+ [[ $status == $_E_PKG_NONFREE ]]
- pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.free >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ local pcn_stat=$status
+ status=0
+ pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $EXIT_FAILURE ]]
+}
+@test "pkgbuild-check-nonfree fails for nonfree package" {
+ pkgbuild-check-nonfree fixtures/pkgbuild-check-nonfree/PKGBUILD.pkg-nonfree >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+ [[ $status == $_E_PKG_NONFREE ]]
+
+ local pcn_stat=$status
+ status=0
+
+ pkgbuild-summarize-nonfree $pcn_stat >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
empty $tmpdir/stdout
not empty $tmpdir/stderr
- [[ $status != 0 ]] && [[ $status != 15 ]]
+ [[ $status == $EXIT_FAILURE ]]
}