diff --git a/Makefile b/Makefile index e1d4905..857fbda 100644 --- a/Makefile +++ b/Makefile @@ -9,4 +9,7 @@ install-extra: mkdir -p $(DESTDIR)/$(datarootdir)/aclocal install -c -m644 pkg.m4 $(DESTDIR)/$(datarootdir)/aclocal/pkg.m4 +check: $(PROG) + $(SHELL) tests/run.sh ./$(PROG) + include .deps diff --git a/tests/lib1/foo.pc b/tests/lib1/foo.pc new file mode 100644 index 0000000..5974fbe --- /dev/null +++ b/tests/lib1/foo.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: foo +Description: A testing pkg-config file +Version: 1.2.3 +Libs: -L${libdir} -lfoo +Cflags: -fPIC -I${includedir}/foo diff --git a/tests/run.sh b/tests/run.sh new file mode 100644 index 0000000..15f5c53 --- /dev/null +++ b/tests/run.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# Tests for pkg-config compliance. +# * Copyright (c) 2012 Michał Górny . + +done=0 +failed=0 + +run_test() { + local res t_ret 2>/dev/null || true + + echo "$ ${1}" + eval res="\$(${1})" + echo "${res}" + + t_ret=0 + while [ ${#} -gt 1 ]; do + shift + + case "${res}" in + *${1}*) + ;; + *) + echo "! expected ${1}" + t_ret=1 + ;; + esac + done + + if [ ${t_ret} -eq 0 ]; then + echo "+ [OK]" + else + failed=$(( failed + 1 )) + fi + done=$(( done + 1 )) + + echo +} + +selfdir=$(cd "$(dirname "${0}")"; pwd) + +# 1) overall 'is it working?' test +run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --libs foo" \ + '-lfoo' +run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --cflags --libs foo" \ + '-lfoo' '-I/usr/include/foo' '-fPIC' +run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --exists 'foo > 1.2'; echo \$?" \ + '0' +run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --exists 'foo > 1.2.3'; echo \$?" \ + '1' + +if [ ${failed} -gt 0 ]; then + echo "${failed} of ${done} tests failed. See output for details." >&2 + exit 1 +else + echo "${done} tests done. All succeeded." >&2 + exit 0 +fi