# Tests for ob_parse_dep() # # Copyright (C) 2012, 2018 Patrick "P. J." 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 . 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: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' \ ''