# opkbuild # tests/ob_parse_dep # Tests for ob_parse_dep. # # Copyright (C) 2012 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 . srcdir="$(dirname "${0}")" top_builddir="${PWD}" . "${srcdir}/aux/tap-functions.sh" . "${top_builddir}/lib/libopkbuild.shso.1" 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 echo \"\$\{test_${comp}\}\")" good_comp="$(eval echo \"\$\{${comp}\}\")" if [ "${test_comp}" != "${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:core-linux-eglibc' \ 'foo' \ 'core-linux-eglibc' \ '' \ '' \ '' testcase \ 'foo (>= 1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo(>=1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo (>= 1.0)' \ 'foo' \ '' \ '>=' \ '1.0' \ '' testcase \ 'foo [core-linux-eglibc]' \ 'foo' \ '' \ '' \ '' \ 'core-linux-eglibc' testcase \ 'foo[core-linux-eglibc]' \ 'foo' \ '' \ '' \ '' \ 'core-linux-eglibc' testcase \ 'foo [core-linux-eglibc]' \ 'foo' \ '' \ '' \ '' \ 'core-linux-eglibc' testcase \ 'foo:core-linux-eglibc (>= 1.0) [core-linux-eglibc]' \ 'foo' \ 'core-linux-eglibc' \ '>=' \ '1.0' \ 'core-linux-eglibc' testcase \ 'foo:core-linux-eglibc(>=1.0)[core-linux-eglibc]' \ 'foo' \ 'core-linux-eglibc' \ '>=' \ '1.0' \ 'core-linux-eglibc' testcase \ 'foo:core-linux-eglibc (>= 1.0) [core-linux-eglibc]' \ 'foo' \ 'core-linux-eglibc' \ '>=' \ '1.0' \ 'core-linux-eglibc' testcase \ 'busybox (<< 1.21.1.12)' \ 'busybox' \ '' \ '<<' \ '1.21.1.12' \ ''