diff options
Diffstat (limited to 'test/cases/pkgbuild-check-nonfree.bats')
-rw-r--r-- | test/cases/pkgbuild-check-nonfree.bats | 145 |
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 ]] } |