summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/ob_reduce_deps.data14
-rw-r--r--tests/ob_reduce_deps.sh57
2 files changed, 71 insertions, 0 deletions
diff --git a/tests/ob_reduce_deps.data b/tests/ob_reduce_deps.data
new file mode 100644
index 0000000..9d4b2b4
--- /dev/null
+++ b/tests/ob_reduce_deps.data
@@ -0,0 +1,14 @@
+# dependencies ; reduced dependencies ; type ; host-arch
+
+foo, bar ;foo, bar \
+ ;n;core-linux-eglibc
+foo,bar ;foo, bar \
+ ;n;core-linux-eglibc
+foo, bar ;foo, bar \
+ ;n;core-linux-eglibc
+foo, bar ;foo, bar \
+ ;u;core-linux-eglibc
+foo,bar ;foo, bar \
+ ;u;core-linux-eglibc
+foo, bar ;foo, bar \
+ ;u;core-linux-eglibc
diff --git a/tests/ob_reduce_deps.sh b/tests/ob_reduce_deps.sh
new file mode 100644
index 0000000..28d69e6
--- /dev/null
+++ b/tests/ob_reduce_deps.sh
@@ -0,0 +1,57 @@
+# opkbuild
+# tests/ob_reduce_deps
+# Tests for ob_reduce_deps.
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+. ./common.sh
+
+ob_use deps
+
+ret=0
+
+while read line; do
+
+ line="${line%%#*}"
+ [ -z "${line}" ] && continue
+
+ IFS=';' read -r test_deps good_deps type host_arch \
+ <<EOF
+${line}
+EOF
+
+ test_deps="$(echo "${test_deps}" | sed 's/^ *//;s/ *$//')"
+ good_deps="$(echo "${good_deps}" | sed 's/^ *//;s/ *$//')"
+ type="$(echo "${type}" | sed 's/^ *//;s/ *$//')"
+ host_arch="$(echo "${host_arch}" | sed 's/^ *//;s/ *$//')"
+
+ if [ "${type}" != 'u' ]; then
+ test_deps="$(ob_reduce_deps -a "${host_arch}" "${test_deps}")"
+ else
+ test_deps="$(ob_reduce_deps -u -a "${host_arch}" "${test_deps}")"
+ fi
+
+ if [ "${test_deps}" != "${good_deps}" ]; then
+ printf 'Dependency list of type "%s" for host arch "%s":\n' \
+ "${type}" "${host_arch}"
+ printf ' "%s" != "%s"\n' \
+ "${test_deps}" "${good_deps}"
+ ret=1
+ fi
+
+done <'ob_reduce_deps.data'
+
+exit ${ret}