# Tests for ob_parse_dep() # # Copyright (C) 2012, 2018 Patrick McDermott # # This file is part of opkbuild. # # opkbuild 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 3 of the License, or # (at your option) any later version. # # opkbuild 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 opkbuild. If not, see . set -eu . "${TOP_SRCDIR}/tests/aux/tap-functions.sh" . "${TOP_BUILDDIR}/lib/libopkbuild.${SHSOEXT}.${LIBOPKBUILD_SHSOVERSION}" testcase() { local dep="${1}" local pkg="${2}" local archqual="${3}" local rel="${4}" local ver="${5}" local arches="${6}" shift 6 local result= ob_parse_dep -P test_pkg -q test_archqual -r test_rel -v test_ver \ -A test_arches -- "${dep}" >/dev/null result='ok_' for comp in pkg archqual rel ver arches; do test_comp="$(eval "printf '%s' \"\${test_${comp}}\"")" good_comp="$(eval "printf '%s' \"\${${comp}}\"")" if [ x"${test_comp}" != x"${good_comp}" ]; then diag_ "$(printf 'Dependency "%s", component "%s":' \ "${dep}" "${comp}")" diag_ "$(printf ' "%s" != "%s"\n' \ "${test_comp}" "${good_comp}")" result='not_ok_' fi done "${result}" -- "PARSE DEPENDENCY \"${dep}\"" } plan_ 12 testcase \ 'foo' \ 'foo' \ '' \ '' \ '' \ '' testcase \ 'foo:amd64-linux-glibc' \ 'foo' \ 'amd64-linux-glibc' \ '' \ '' \ '' testcase \ 'foo (>= 1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo(>=1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo (>= 1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo [amd64-linux-glibc]' \ 'foo' \ '' \ '' \ '' \ 'amd64-linux-glibc' testcase \ 'foo[amd64-linux-glibc]' \ 'foo' \ '' \ '' \ '' \ 'amd64-linux-glibc' testcase \ 'foo [amd64-linux-glibc]' \ 'foo' \ '' \ '' \ '' \ 'amd64-linux-glibc' testcase \ 'foo:amd64-linux-glibc (>= 1.0) [amd64-linux-glibc]' \ 'foo' \ 'amd64-linux-glibc' \ '>=' \ '1.0' \ 'amd64-linux-glibc' testcase \ 'foo:amd64-linux-glibc(>=1.0)[amd64-linux-glibc]' \ 'foo' \ 'amd64-linux-glibc' \ '>=' \ '1.0' \ 'amd64-linux-glibc' testcase \ 'foo:amd64-linux-glibc (>= 1.0) [amd64-linux-glibc]' \ 'foo' \ 'amd64-linux-glibc' \ '>=' \ '1.0' \ 'amd64-linux-glibc' testcase \ 'busybox (<< 1.21.1.12)' \ 'busybox' \ '' \ '<<' \ '1.21.1.12' \ ''