tests: move the pkg-config test to a separate script

This commit is contained in:
Pierre Pronchery 2025-03-14 11:25:29 +01:00
parent 5465283ff4
commit fdf6d51887
4 changed files with 78 additions and 13 deletions

View File

@ -9,7 +9,7 @@ targets=tests
#targets #targets
[tests] [tests]
type=command type=command
command=cd tests && (if [ -n "$(OBJDIR)" ]; then $(MAKE) OBJDIR="$(OBJDIR)tests/" "$(OBJDIR)tests/fixme.log" "$(OBJDIR)tests/shlint.log" "$(OBJDIR)tests/tests.log"; else $(MAKE) fixme.log shlint.log tests.log; fi) command=cd tests && (if [ -n "$(OBJDIR)" ]; then $(MAKE) OBJDIR="$(OBJDIR)tests/" "$(OBJDIR)tests/fixme.log" "$(OBJDIR)tests/pkgconfig.log" "$(OBJDIR)tests/shlint.log" "$(OBJDIR)tests/tests.log"; else $(MAKE) fixme.log pkgconfig.log shlint.log tests.log; fi)
depends=all depends=all
enabled=0 enabled=0
phony=1 phony=1

View File

@ -23,18 +23,39 @@
#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#variables #variables
PACKAGE="libApp" CONFIGSH="${0%/pkgconfig.sh}/../config.sh"
PKG_CONFIG_PATH="$OBJDIR../data:$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$OBJDIR../data:$PKG_CONFIG_PATH"
PKG_CONFIG_PATH="${PKG_CONFIG_PATH%:}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH%:}"
PROGNAME="pkgconfig.sh"
#executables #executables
ECHO="echo" ECHO="echo"
PKGCONFIG="pkg-config" PKGCONFIG="pkg-config"
UNAME="uname" UNAME="uname"
[ "$($UNAME -s)" != "Darwin" ] || ECHO="/bin/echo" [ "$($UNAME -s)" != "Darwin" ] || ECHO="/bin/echo"
[ -f "$CONFIGSH" ] && . "$CONFIGSH"
#functions
#pkgconfig
_pkgconfig() _pkgconfig()
{ {(
ret=0
_pkgconfig_do "EXISTS:" --exists "$PACKAGE" || return 2
_pkgconfig_do "VERSION:" --modversion "$PACKAGE" || ret=3
_pkgconfig_do "CFLAGS: " --cflags "$PACKAGE" || ret=4
_pkgconfig_do "LIBS: " --libs "$PACKAGE" || ret=5
_pkgconfig_do "PROVIDES:" --print-provides "$PACKAGE" || ret=6
_pkgconfig_do "REQUIRES:" --print-requires "$PACKAGE" || ret=7
return $ret
)}
_pkgconfig_do()
{(
ret=0 ret=0
caption="$1" caption="$1"
options="$2" options="$2"
@ -45,16 +66,55 @@ _pkgconfig()
ret=$? ret=$?
echo "$output" echo "$output"
return $ret return $ret
)}
#usage
_usage()
{
echo "Usage: $PROGNAME [-c] target..." 1>&2
return 1
} }
_pkgconfig "EXISTS:" --exists "$PACKAGE" || exit 2
#main
clean=0
while getopts "cO:P:" name; do
case "$name" in
c)
clean=1
;;
O)
export "${OPTARG%%=*}"="${OPTARG#*=}"
;;
P)
#XXX ignored for compatibility
;;
?)
_usage
exit $?
;;
esac
done
shift $((OPTIND - 1))
if [ $# -lt 1 ]; then
_usage
exit $?
fi
#clean
[ $clean -ne 0 ] && exit 0
exec 3>&1
ret=0 ret=0
while [ $# -gt 0 ]; do
target="$1"
dirname="${target%/*}"
shift
_pkgconfig "VERSION:" --modversion "$PACKAGE" || ret=3 if [ -n "$dirname" -a "$dirname" != "$target" ]; then
_pkgconfig "CFLAGS: " --cflags "$PACKAGE" || ret=4 $MKDIR -- "$dirname" || ret=$?
_pkgconfig "LIBS: " --libs "$PACKAGE" || ret=5 fi
_pkgconfig "PROVIDES:" --print-provides "$PACKAGE" || ret=6 _pkgconfig > "$target" || ret=$?
_pkgconfig "REQUIRES:" --print-requires "$PACKAGE" || ret=7 done
exit $ret exit $ret

View File

@ -1,4 +1,4 @@
targets=AppBroker,Dummy.h,appclient,appinterface,appmessage,appserver,fixme.log,includes,lookup,shlint.log,tests.log,transport targets=AppBroker,Dummy.h,appclient,appinterface,appmessage,appserver,fixme.log,includes,lookup,pkgconfig.log,shlint.log,tests.log,transport
cppflags_force=-I../include -I. -I$(OBJDIR). cppflags_force=-I../include -I. -I$(OBJDIR).
cflags_force=`pkg-config --cflags libSystem` cflags_force=`pkg-config --cflags libSystem`
cflags=-W -Wall -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector cflags=-W -Wall -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector
@ -52,6 +52,12 @@ sources=includes.c
type=binary type=binary
sources=lookup.c sources=lookup.c
[pkgconfig.log]
type=script
script=./pkgconfig.sh
depends=$(OBJDIR)../data/libApp.pc,pkgconfig.sh
enabled=0
[shlint.log] [shlint.log]
type=script type=script
script=./shlint.sh script=./shlint.sh
@ -61,7 +67,7 @@ enabled=0
[tests.log] [tests.log]
type=script type=script
script=./tests.sh script=./tests.sh
depends=Test.expected,Test.interface,$(OBJDIR)AppBroker$(EXEEXT),appbroker.sh,$(OBJDIR)appclient$(EXEEXT),$(OBJDIR)appmessage$(EXEEXT),$(OBJDIR)appserver$(EXEEXT),$(OBJDIR)includes$(EXEEXT),$(OBJDIR)lookup$(EXEEXT),pkgconfig.sh,tests.sh,$(OBJDIR)transport$(EXEEXT),../src/transport/tcp.c,../src/transport/udp.c depends=Test.expected,Test.interface,$(OBJDIR)AppBroker$(EXEEXT),appbroker.sh,$(OBJDIR)appclient$(EXEEXT),$(OBJDIR)appmessage$(EXEEXT),$(OBJDIR)appserver$(EXEEXT),$(OBJDIR)includes$(EXEEXT),$(OBJDIR)lookup$(EXEEXT),tests.sh,$(OBJDIR)transport$(EXEEXT),../src/transport/tcp.c,../src/transport/udp.c
enabled=0 enabled=0
[transport] [transport]

View File

@ -162,7 +162,6 @@ while [ $# -ne 0 ]; do
-n "tcp4:localhost:4242" -n "tcp4:localhost:4242"
APPSERVER_Session="tcp:localhost:4242" _test "lookup" \ APPSERVER_Session="tcp:localhost:4242" _test "lookup" \
"lookup Session" -a "Session" "lookup Session" -a "Session"
_test "pkgconfig.sh" "pkg-config"
_test "transport" "tcp4 127.0.0.1:4242" -p tcp4 127.0.0.1:4242 _test "transport" "tcp4 127.0.0.1:4242" -p tcp4 127.0.0.1:4242
_test "transport" "tcp4 localhost:4242" -p tcp4 localhost:4242 _test "transport" "tcp4 localhost:4242" -p tcp4 localhost:4242
_test "transport" "tcp6 ::1.4242" -p tcp6 ::1.4242 _test "transport" "tcp6 ::1.4242" -p tcp6 ::1.4242