]> git.ipfire.org Git - thirdparty/libbsd.git/commitdiff
test: Add new unit tests for individual headers usage
authorGuillem Jover <guillem@hadrons.org>
Sat, 12 Dec 2015 13:26:50 +0000 (14:26 +0100)
committerGuillem Jover <guillem@hadrons.org>
Mon, 14 Dec 2015 02:34:40 +0000 (03:34 +0100)
test/.gitignore
test/Makefile.am
test/headers-overlay.sh [new file with mode: 0755]
test/headers-system.sh [new file with mode: 0755]
test/headers.c [deleted file]

index 278391d9701dbf70617a0d5c4342675962beded7..f15b47661f8b46def6ce3f0d0d48b67182f371e8 100644 (file)
@@ -6,7 +6,7 @@ fgetln
 funopen
 fparseln
 fpurge
-headers
+headers-gen.c
 humanize
 overlay
 proctitle-init
index 9694338425cc479b3f764d78f5477eb2d64afb65..9b79f06540ce8119c5cead71acb57b6fabcc08af 100644 (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)
diff --git a/test/headers-overlay.sh b/test/headers-overlay.sh
new file mode 100755 (executable)
index 0000000..56ce90d
--- /dev/null
@@ -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
diff --git a/test/headers-system.sh b/test/headers-system.sh
new file mode 100755 (executable)
index 0000000..173fcc5
--- /dev/null
@@ -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
diff --git a/test/headers.c b/test/headers.c
deleted file mode 100644 (file)
index be1cb71..0000000
+++ /dev/null
@@ -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;
-}