From 74e061a9a78a2041902d62b9b5c07c21132ba0de Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 17 Jan 2020 20:27:12 +0100 Subject: [PATCH] Let the tests work without installing libApp first --- tests/appbroker.c | 18 ++++++++ tests/appbroker.sh | 9 +++- tests/project.conf | 15 +++++-- tools/appbroker.sh | 106 --------------------------------------------- tools/project.conf | 3 +- 5 files changed, 39 insertions(+), 112 deletions(-) create mode 100644 tests/appbroker.c delete mode 100755 tools/appbroker.sh diff --git a/tests/appbroker.c b/tests/appbroker.c new file mode 100644 index 0000000..998e61a --- /dev/null +++ b/tests/appbroker.c @@ -0,0 +1,18 @@ +/* $Id$ */ +/* Copyright (c) 2020 Pierre Pronchery */ +/* This file is part of DeforaOS System libApp */ +/* 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, version 3 of the License. + * + * 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 . */ + + + +#include "../tools/appbroker.c" diff --git a/tests/appbroker.sh b/tests/appbroker.sh index e63c250..e825050 100755 --- a/tests/appbroker.sh +++ b/tests/appbroker.sh @@ -27,7 +27,7 @@ #variables PROGNAME="appbroker.sh" #executables -APPBROKER="AppBroker" +APPBROKER= DEBUG="_debug" @@ -85,6 +85,11 @@ fi [ "$clean" -ne 0 ] && exit 0 +if [ -z "$APPBROKER" ]; then + APPBROKER="./AppBroker$EXEEXT" + [ -n "$OBJDIR" ] && APPBROKER="${OBJDIR}AppBroker" +fi + exec 3>&1 while [ $# -gt 0 ]; do target="$1" @@ -93,5 +98,7 @@ while [ $# -gt 0 ]; do source="${target#$OBJDIR}" appinterface="${source##*/}" appinterface="${appinterface%%.h}.interface" + #XXX also look in ../data + [ ! -f "$appinterface" ] && appinterface="../data/$appinterface" _appbroker "$target" "$appinterface" || exit 2 done diff --git a/tests/project.conf b/tests/project.conf index 5221b75..06bab9f 100644 --- a/tests/project.conf +++ b/tests/project.conf @@ -1,4 +1,4 @@ -targets=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,shlint.log,tests.log,transport cppflags_force=-I../include -I$(OBJDIR). cflags_force=`pkg-config --cflags libSystem` cflags=-W -Wall -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-all @@ -7,11 +7,15 @@ ldflags=-pie -Wl,-z,relro -Wl,-z,now -rdynamic dist=System/App.h,appbroker.sh,fixme.sh,Makefile,Test.expected,Test.interface,pkgconfig.sh,shlint.sh,tests.sh #targets +[AppBroker] +type=binary +sources=appbroker.c +ldflags=$(OBJDIR)../src/libApp.a + [Dummy.h] type=script -script=../tools/appbroker.sh -flags=-O APPBROKER=$(OBJDIR)../tools/AppBroker$(EXEEXT) -depends=../data/Dummy.interface,../tools/appbroker.sh +script=./appbroker.sh +depends=../data/Dummy.interface,appbroker.sh [appclient] type=binary @@ -62,6 +66,9 @@ type=binary sources=transport.c #sources +[appbroker.c] +depends=../tools/appbroker.c + [appclient.c] depends=$(OBJDIR)../src/libApp.a diff --git a/tools/appbroker.sh b/tools/appbroker.sh deleted file mode 100755 index 6a8716c..0000000 --- a/tools/appbroker.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -#$Id$ -#Copyright (c) 2011-2016 Pierre Pronchery -# -#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 -PROGNAME="appbroker.sh" -#executables -APPBROKER= -DEBUG="_debug" - - -#functions -#appbroker -_appbroker() -{ - target="$1" - appinterface="$2" - - $DEBUG $APPBROKER -o "$target" "$appinterface" -} - - -#debug -_debug() -{ - echo "$@" 1>&3 - "$@" -} - - -#usage -_usage() -{ - echo "Usage: $PROGNAME [-c] target..." 1>&2 - return 1 -} - - -#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 [ $# -eq 0 ]; then - _usage - exit $? -fi - -[ "$clean" -ne 0 ] && exit 0 - -if [ -n "$PKG_CONFIG_SYSROOT_DIR" ]; then - #XXX cross-compiling (requires AppBroker(1) installed) - APPBROKER="AppBroker$EXEEXT" -elif [ -z "$APPBROKER" ]; then - APPBROKER="$OBJDIR../tools/AppBroker$EXEEXT" - #XXX ugly workaround - export LD_LIBRARY_PATH="$OBJDIR../src" -fi - -exec 3>&1 -while [ $# -gt 0 ]; do - target="$1" - shift - - source="${target#$OBJDIR}" - appinterface="${source##*/}" - appinterface="../data/${appinterface%%.h}.interface" - _appbroker "$target" "$appinterface" || exit 2 -done diff --git a/tools/project.conf b/tools/project.conf index 931f986..e367450 100644 --- a/tools/project.conf +++ b/tools/project.conf @@ -5,8 +5,9 @@ cflags_force=`pkg-config --cflags libSystem libMarshall` cflags=-W -Wall -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-all ldflags_force=-L$(OBJDIR)../src `pkg-config --libs libSystem libMarshall` -lApp ldflags=-pie -Wl,-z,relro -Wl,-z,now -dist=Makefile,appbroker.sh +dist=Makefile +#targets [AppBroker] type=binary sources=appbroker.c