From 047d677cc3ebaed13e4a0ad4490f6868210a1334 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 16 May 2016 17:22:39 +0200 Subject: [PATCH] Add a test for the pkg-config file --- tests/pkgconfig.sh | 57 ++++++++++++++++++++++++++++++++++++++++++++++ tests/project.conf | 4 ++-- tests/tests.sh | 2 +- 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100755 tests/pkgconfig.sh diff --git a/tests/pkgconfig.sh b/tests/pkgconfig.sh new file mode 100755 index 0000000..952460d --- /dev/null +++ b/tests/pkgconfig.sh @@ -0,0 +1,57 @@ +#!/bin/sh +#$Id$ +#Copyright (c) 2016 Pierre Pronchery +#This file is part of DeforaOS Desktop libDesktop +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +#AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +#OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +#variables +PACKAGE="libSystem" +PKG_CONFIG_PATH="$OBJDIR../data:$PKG_CONFIG_PATH" +PKG_CONFIG_PATH="${PKG_CONFIG_PATH%:}" +#executables +PKGCONFIG="pkg-config" + +_pkgconfig() +{ + ret=0 + caption="$1" + options="$2" + packages="$3" + + echo -n "$caption" + output=$($PKGCONFIG $options "$packages") + ret=$? + echo "$output" + return $ret +} + +_pkgconfig "EXISTS:" --exists "$PACKAGE" || exit 2 + +ret=0 + +_pkgconfig "VERSION:" --modversion "$PACKAGE" || ret=3 +_pkgconfig "CFLAGS: " --cflags "$PACKAGE" || ret=4 +_pkgconfig "LIBS: " --libs "$PACKAGE" || ret=5 +_pkgconfig "PROVIDES:" --print-provides "$PACKAGE" || ret=6 +_pkgconfig "REQUIRES:" --print-requires "$PACKAGE" || ret=7 + +exit $ret diff --git a/tests/project.conf b/tests/project.conf index e7d1dec..d5f6280 100644 --- a/tests/project.conf +++ b/tests/project.conf @@ -3,7 +3,7 @@ cppflags_force=-I ../include cflags=-W -Wall -g -O2 -pedantic -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-all ldflags_force=-L$(OBJDIR)../src -Wl,-rpath,$(OBJDIR)../src -lSystem ldflags=-L$(PREFIX)/lib -Wl,-rpath,"$(PWD)/../src" -pie -Wl,-z,relro -Wl,-z,now -dist=COPYING,Makefile,config.conf,config-noeol.conf,pylint.sh,python.sh,tests.sh +dist=COPYING,Makefile,config.conf,config-noeol.conf,pkgconfig.sh,pylint.sh,python.sh,tests.sh [array] type=binary @@ -52,7 +52,7 @@ depends=../src/string.c [tests.log] type=script script=./tests.sh -depends=$(OBJDIR)array$(EXEEXT),$(OBJDIR)config$(EXEEXT),config.conf,config-noeol.conf,$(OBJDIR)error$(EXEEXT),$(OBJDIR)event$(EXEEXT),$(OBJDIR)includes$(EXEEXT),python.sh,$(OBJDIR)string$(EXEEXT),tests.sh,$(OBJDIR)variable$(EXEEXT),$(OBJDIR)../src/libSystem.a +depends=$(OBJDIR)array$(EXEEXT),$(OBJDIR)config$(EXEEXT),config.conf,config-noeol.conf,$(OBJDIR)error$(EXEEXT),$(OBJDIR)event$(EXEEXT),$(OBJDIR)includes$(EXEEXT),pkgconfig.sh,python.sh,$(OBJDIR)string$(EXEEXT),tests.sh,$(OBJDIR)variable$(EXEEXT),$(OBJDIR)../src/libSystem.a [variable] type=binary diff --git a/tests/tests.sh b/tests/tests.sh index b5d28c4..95e4828 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -100,7 +100,7 @@ target="$1" [ "$clean" -ne 0 ] && exit 0 -tests="array config error event includes string variable" +tests="array config error event includes pkgconfig.sh string variable" failures= if $PKGCONFIG --exists python-2.7; then