summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2014-08-19 17:32:55 -0400
committerTavian Barnes <tavianator@tavianator.com>2015-10-25 11:03:56 -0400
commit654b98bafec4845e5d4af39cda58a2a1aa293d32 (patch)
treeaef041a18b801bb041b0861fa5029c90ef12c68e
parent7b09710392d35fb55b52031d447a542d99fc6b4b (diff)
downloaddimension-654b98bafec4845e5d4af39cda58a2a1aa293d32.tar.xz
libdimension: Test each module header in isolation.
-rw-r--r--libdimension/dimension/concurrency.h2
-rw-r--r--libdimension/dimension/platform.h2
-rw-r--r--libdimension/tests/Makefile.am52
-rw-r--r--libdimension/tests/modules/base.c29
-rw-r--r--libdimension/tests/modules/canvas.c29
-rw-r--r--libdimension/tests/modules/color.c29
-rw-r--r--libdimension/tests/modules/concurrency.c29
-rw-r--r--libdimension/tests/modules/math.c29
-rw-r--r--libdimension/tests/modules/model.c29
-rw-r--r--libdimension/tests/modules/pattern.c29
-rw-r--r--libdimension/tests/modules/platform.c29
-rw-r--r--libdimension/tests/modules/render.c29
12 files changed, 297 insertions, 20 deletions
diff --git a/libdimension/dimension/concurrency.h b/libdimension/dimension/concurrency.h
index 6c8c29c..d712873 100644
--- a/libdimension/dimension/concurrency.h
+++ b/libdimension/dimension/concurrency.h
@@ -30,6 +30,8 @@
extern "C" {
#endif
+#include <dimension/base.h>
+
#include <dimension/concurrency/future.h>
#ifdef __cplusplus
diff --git a/libdimension/dimension/platform.h b/libdimension/dimension/platform.h
index 4c01709..d85a252 100644
--- a/libdimension/dimension/platform.h
+++ b/libdimension/dimension/platform.h
@@ -30,6 +30,8 @@
extern "C" {
#endif
+#include <dimension/base.h>
+
#include <dimension/platform/timer.h>
#ifdef __cplusplus
diff --git a/libdimension/tests/Makefile.am b/libdimension/tests/Makefile.am
index 9829642..f9ff11f 100644
--- a/libdimension/tests/Makefile.am
+++ b/libdimension/tests/Makefile.am
@@ -20,24 +20,25 @@
AM_CFLAGS = -I$(top_srcdir)/libdimension
AM_CXXFLAGS = $(AM_CFLAGS)
-check_LTLIBRARIES = libdimension-tests.la \
- libdimension-unit-test.la
-check_PROGRAMS = c89.test \
- c99.test \
- c++03.test \
- c++11.test \
- warning.test \
- warning-as-error.test \
- error.test \
- custom-error-fn.test \
- pool.test \
- dictionary.test \
- polynomial.test \
- prtree.test \
- future.test \
- png.test \
- gl.test \
- render.test
+check_LTLIBRARIES = libdimension-tests.la \
+ libdimension-unit-test.la
+check_PROGRAMS = modules.test \
+ c89.test \
+ c99.test \
+ c++03.test \
+ c++11.test \
+ warning.test \
+ warning-as-error.test \
+ error.test \
+ custom-error-fn.test \
+ pool.test \
+ dictionary.test \
+ polynomial.test \
+ prtree.test \
+ future.test \
+ png.test \
+ gl.test \
+ render.test
TESTS = $(check_PROGRAMS)
XFAIL_TESTS = warning-as-error.test error.test
@@ -51,8 +52,8 @@ if !GL
XFAIL_TESTS += gl.test
endif
-libdimension_tests_la_SOURCES = test_canvas.c \
- tests.h
+libdimension_tests_la_SOURCES = test_canvas.c \
+ tests.h
libdimension_tests_la_LIBADD = $(top_builddir)/libdimension/libdimension.la
if GLX
@@ -66,6 +67,17 @@ libdimension_unit_test_la_SOURCES = unit-test.c
libdimension_unit_test_la_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS)
libdimension_unit_test_la_LIBADD = $(CHECK_LIBS) $(top_builddir)/libdimension/libdimension.la
+modules_test_SOURCES = modules/base.c \
+ modules/canvas.c \
+ modules/color.c \
+ modules/concurrency.c \
+ modules/math.c \
+ modules/model.c \
+ modules/pattern.c \
+ modules/platform.c \
+ modules/render.c
+modules_test_LDADD = libdimension-unit-test.la
+
c89_test_SOURCES = c89.c
c89_test_LDADD = libdimension-tests.la
diff --git a/libdimension/tests/modules/base.c b/libdimension/tests/modules/base.c
new file mode 100644
index 0000000..665c62f
--- /dev/null
+++ b/libdimension/tests/modules/base.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the base module in isolation.
+ */
+
+#include "dimension/base.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/canvas.c b/libdimension/tests/modules/canvas.c
new file mode 100644
index 0000000..e9e0471
--- /dev/null
+++ b/libdimension/tests/modules/canvas.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the canvas module in isolation.
+ */
+
+#include "dimension/canvas.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/color.c b/libdimension/tests/modules/color.c
new file mode 100644
index 0000000..6c9e63f
--- /dev/null
+++ b/libdimension/tests/modules/color.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the color module in isolation.
+ */
+
+#include "dimension/color.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/concurrency.c b/libdimension/tests/modules/concurrency.c
new file mode 100644
index 0000000..16bb305
--- /dev/null
+++ b/libdimension/tests/modules/concurrency.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the concurrency module in isolation.
+ */
+
+#include "dimension/concurrency.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/math.c b/libdimension/tests/modules/math.c
new file mode 100644
index 0000000..5bf3ac1
--- /dev/null
+++ b/libdimension/tests/modules/math.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the math module in isolation.
+ */
+
+#include "dimension/math.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/model.c b/libdimension/tests/modules/model.c
new file mode 100644
index 0000000..9bd5f00
--- /dev/null
+++ b/libdimension/tests/modules/model.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the model module in isolation.
+ */
+
+#include "dimension/model.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/pattern.c b/libdimension/tests/modules/pattern.c
new file mode 100644
index 0000000..46bb99e
--- /dev/null
+++ b/libdimension/tests/modules/pattern.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the pattern module in isolation.
+ */
+
+#include "dimension/pattern.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/platform.c b/libdimension/tests/modules/platform.c
new file mode 100644
index 0000000..b0fc978
--- /dev/null
+++ b/libdimension/tests/modules/platform.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the platform module in isolation.
+ */
+
+#include "dimension/platform.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif
diff --git a/libdimension/tests/modules/render.c b/libdimension/tests/modules/render.c
new file mode 100644
index 0000000..a508c9f
--- /dev/null
+++ b/libdimension/tests/modules/render.c
@@ -0,0 +1,29 @@
+/*************************************************************************
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Test Suite. *
+ * *
+ * The Dimension Test Suite 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; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Test Suite 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+/**
+ * @file
+ * Test the render module in isolation.
+ */
+
+#include "dimension/render.h"
+
+#ifndef DMNSN_INLINE
+#error "Missing #include <dimension/base.h>"
+#endif