From: Guillem Jover Date: Sat, 12 Dec 2015 13:26:50 +0000 (+0100) Subject: test: Add new unit tests for individual headers usage X-Git-Tag: 0.8.1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f84004baf22e26e835515b79613de45708a73391;p=thirdparty%2Flibbsd.git test: Add new unit tests for individual headers usage --- diff --git a/test/.gitignore b/test/.gitignore index 278391d..f15b476 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -6,7 +6,7 @@ fgetln funopen fparseln fpurge -headers +headers-gen.c humanize overlay proctitle-init diff --git a/test/Makefile.am b/test/Makefile.am index 9694338..9b79f06 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,16 +1,35 @@ ## Process this file with automake to produce Makefile.in -AM_CPPFLAGS = \ +HEADERS_CPPFLAGS = \ -I$(top_builddir) \ - -isystem $(top_srcdir)/include/bsd/ \ -include $(top_builddir)/config.h \ - -DLIBBSD_OVERLAY -DLIBBSD_DISABLE_DEPRECATED \ + -DLIBBSD_DISABLE_DEPRECATED \ -D__REENTRANT +AM_CPPFLAGS = \ + -isystem $(top_srcdir)/include/bsd/ \ + $(HEADERS_CPPFLAGS) \ + -DLIBBSD_OVERLAY + +AM_TESTS_ENVIRONMENT = \ + export CC="$(CC)"; \ + export CPPFLAGS="$(HEADERS_CPPFLAGS)"; \ + export top_srcdir="$(top_srcdir)"; \ + $(nil) + LDADD = $(top_builddir)/src/libbsd.la +EXTRA_DIST = \ + headers-overlay.sh \ + headers-system.sh \ + $(nil) + +check_SCRIPTS = \ + headers-overlay.sh \ + headers-system.sh \ + $(nil) + check_PROGRAMS = \ - headers \ overlay \ bzero \ closefrom \ @@ -47,4 +66,4 @@ fparseln_SOURCES = test-stream.c test-stream.h fparseln.c proctitle_init_SOURCES = proctitle.c proctitle_init_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_USE_SETPROCTITLE_INIT=1 -TESTS = $(check_PROGRAMS) +TESTS = $(check_SCRIPTS) $(check_PROGRAMS) diff --git a/test/headers-overlay.sh b/test/headers-overlay.sh new file mode 100755 index 0000000..56ce90d --- /dev/null +++ b/test/headers-overlay.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +set -e + +run() +{ + echo "$@" + "$@" +} + +incdir="${top_srcdir}/include/bsd" +CPPFLAGS="$CPPFLAGS -DLIBBSD_OVERLAY" + +for inc in $(cd $incdir; find -name '*.h' | sort | cut -c3-); do + cat >headers-gen.c < +int main() { return 0; } +SOURCE + + echo "testing header $inc" + run $CC -isystem "$incdir" $CPPFLAGS headers-gen.c -o /dev/null + echo + + rm -f headers-gen* +done diff --git a/test/headers-system.sh b/test/headers-system.sh new file mode 100755 index 0000000..173fcc5 --- /dev/null +++ b/test/headers-system.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +run() +{ + echo "$@" + "$@" +} + +incdir="${top_srcdir}/include" + +for inc in $(cd $incdir; find -name '*.h' | sort | cut -c3-); do + cat >headers-gen.c < +int main() { return 0; } +SOURCE + + echo "testing header $inc" + run $CC -isystem "$incdir" $CPPFLAGS headers-gen.c -o /dev/null + echo + + rm -f headers-gen.* +done diff --git a/test/headers.c b/test/headers.c deleted file mode 100644 index be1cb71..0000000 --- a/test/headers.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright © 2012 Guillem Jover - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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. - */ - -/* Check that all libbsd overlayed headers preprocess. */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int -main() -{ - return 0; -}