test: Add new unit tests for individual headers usage

This commit is contained in:
Guillem Jover 2015-12-12 14:26:50 +01:00
parent cdf998a056
commit f84004baf2
5 changed files with 74 additions and 57 deletions

2
test/.gitignore vendored
View File

@ -6,7 +6,7 @@ fgetln
funopen
fparseln
fpurge
headers
headers-gen.c
humanize
overlay
proctitle-init

View File

@ -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)

25
test/headers-overlay.sh Executable file
View File

@ -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 <<SOURCE
#include <$inc>
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

24
test/headers-system.sh Executable file
View File

@ -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 <<SOURCE
#include <$inc>
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

View File

@ -1,51 +0,0 @@
/*
* Copyright © 2012 Guillem Jover <guillem@hadrons.org>
*
* 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 <sys/cdefs.h>
#include <sys/endian.h>
#include <sys/bitstring.h>
#include <sys/queue.h>
#include <sys/tree.h>
#include <sys/poll.h>
#include <err.h>
#include <getopt.h>
#include <libutil.h>
#include <md5.h>
#include <nlist.h>
#include <readpassphrase.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <vis.h>
int
main()
{
return 0;
}