# 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 . . ./common.sh ob_use metadata ob_use output ret=0 arch= arch_field= result= main() { while read line; do line=${line%#*} line=$(echo ${line}) [ -z "${line}" ] && continue eval set -- ${line} cmd="${1}" shift if echo ' set test ' | grep " ${cmd} " >/dev/null 2>&1; then "cmd_${cmd}" "${@}" else ob_error 'Invalid command in ob_match_arch.rc!' fi done <'ob_match_arch.rc' exit ${ret} } cmd_set() { if [ ${#} -lt 2 ]; then ob_error 'Invalid arguments to command "set" in ob_match_arch.rc!' fi name="${1}" shift value="${@}" case "${name}" in arch) arch="${value}" ;; arch_field) arch_field="${value}" ;; result) result="${value}" ;; *) ob_error \ 'Invalid name argument to command "set" in ob_match_arch.rc!' ;; esac } cmd_test() { if ob_match_arch "${arch}" "${arch_field}"; then if [ "${result}" = 'false' ]; then printf 'False positive:\n arch: %s\n arch_field: %s\n' \ "${arch}" "${arch_field}" >&2 ret=1 fi else if [ "${result}" = 'true' ]; then printf 'False negative:\n arch: %s\n arch_field: %s\n' \ "${arch}" "${arch_field}" >&2 ret=1 fi fi } main "${@}"