From 51a47d87ae5b8b219a5c6bd918a602e3ec8ae076 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 02 Oct 2012 01:38:43 -0400 Subject: Add "ob_match_arch" unit test. --- (limited to 'tests/ob_match_arch.sh') diff --git a/tests/ob_match_arch.sh b/tests/ob_match_arch.sh new file mode 100644 index 0000000..1d19af1 --- /dev/null +++ b/tests/ob_match_arch.sh @@ -0,0 +1,97 @@ +# 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 3 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 "${@}" -- cgit v0.9.1