diff options
-rw-r--r-- | tests/local.mk | 2 | ||||
-rw-r--r-- | tests/ob_arch_is_concerned.rc | 67 | ||||
-rw-r--r-- | tests/ob_arch_is_concerned.sh | 57 |
3 files changed, 126 insertions, 0 deletions
diff --git a/tests/local.mk b/tests/local.mk index 30cb38c..acbb674 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -20,10 +20,12 @@ tests = \ tests/ob_match_arch.sh \ tests/ob_parse_dep.sh \ tests/ob_reduce_deps.sh \ + tests/ob_arch_is_concerned.sh \ tests/ob_plat_is_concerned.sh tests_data = \ tests/ob_match_arch.rc \ tests/ob_parse_dep.rc \ tests/ob_reduce_deps.rc \ + tests/ob_arch_is_concerned.rc \ tests/ob_plat_is_concerned.rc diff --git a/tests/ob_arch_is_concerned.rc b/tests/ob_arch_is_concerned.rc new file mode 100644 index 0000000..76db80e --- /dev/null +++ b/tests/ob_arch_is_concerned.rc @@ -0,0 +1,67 @@ +# Architecture: all + +host_arch='amd64-linux-glibc' +arches='all' +result='false' +testcase + +host_arch='i686-linux-glibc' +arches='all' +result='false' +testcase + +host_arch='all' +arches='all' +result='true' +testcase + +# Architecture: any + +host_arch='amd64-linux-glibc' +arches='any' +result='true' +testcase + +host_arch='i686-linux-glibc' +arches='any' +result='true' +testcase + +host_arch='all' +arches='any' +result='false' +testcase + +# Architecture: amd64-linux-glibc + +host_arch='amd64-linux-glibc' +arches='amd64-linux-glibc' +result='true' +testcase + +host_arch='i686-linux-glibc' +arches='amd64-linux-glibc' +result='false' +testcase + +host_arch='all' +arches='amd64-linux-glibc' +result='false' +testcase + +# Architecture: !amd64-linux-glibc + +host_arch='amd64-linux-glibc' +arches='!amd64-linux-glibc' +result='false' +testcase + +host_arch='i686-linux-glibc' +arches='!amd64-linux-glibc' +result='true' +testcase + +host_arch='all' +arches='!amd64-linux-glibc' +result='false' +testcase diff --git a/tests/ob_arch_is_concerned.sh b/tests/ob_arch_is_concerned.sh new file mode 100644 index 0000000..bd5b1af --- /dev/null +++ b/tests/ob_arch_is_concerned.sh @@ -0,0 +1,57 @@ +# opkbuild +# tests/ob_arch_is_concerned +# Tests for ob_arch_is_concerned. +# +# Copyright (C) 2012, 2014 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. ./common.sh + +ob_use metadata + +ret=0 +host_arch= +arches= +result= + +main() +{ + . ./ob_arch_is_concerned.rc + + exit ${ret} +} + +testcase() +{ + if ob_arch_is_concerned "${host_arch}" "${arches}"; then + if ! ${result}; then + printf 'False positive:\n' >&2 + printf ' Host architecture: "%s"\n' \ + "${host_arch}" >&2 + printf ' Package architectures: "%s"\n' "${arches}" >&2 + ret=1 + fi + else + if ${result}; then + printf 'False negative:\n' >&2 + printf ' Host architecture: "%s"\n' \ + "${host_arch}" >&2 + printf ' Package architectures: "%s"\n' "${arches}" >&2 + ret=1 + fi + fi +} + +main "${@}" |