summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2009-10-04 19:05:07 +0000
committerTavian Barnes <tavianator@gmail.com>2009-10-04 19:05:07 +0000
commit2404976a5d1210b4547a76678aada49d0ae74e44 (patch)
tree48101872e19619290a105aba04bc71806a3ab6d7
parentc35d5af1c2845ad072525e69f3f7be01994bcc2f (diff)
downloaddimension-2404976a5d1210b4547a76678aada49d0ae74e44.tar.xz
New test framework.
-rw-r--r--.gitignore2
-rw-r--r--Makefile.am3
-rw-r--r--configure.ac4
-rw-r--r--tests/Makefile.am20
-rw-r--r--tests/libdimension/Makefile.am31
-rw-r--r--tests/libdimension/error.c32
-rw-r--r--tests/libdimension/warning.c53
7 files changed, 142 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 9f020a3..bb691ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,7 +38,7 @@ Makefile.in
/doc/texinfo.tex
# Files created by `make check'
-/tests/*-test
+/tests/*/*-test
/tests/*.png
# Files and folders created by libtool
diff --git a/Makefile.am b/Makefile.am
index 5e1e60f..574df64 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,6 +19,7 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = doc \
- libdimension
+ libdimension \
+ tests
EXTRA_DIST = autogen.sh
diff --git a/configure.ac b/configure.ac
index 4a7c2c7..503262a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,5 +32,7 @@ dnl Generate Makefiles
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile
doc/Makefile
- libdimension/Makefile])
+ libdimension/Makefile
+ tests/Makefile
+ tests/libdimension/Makefile])
AC_OUTPUT
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..12b7a41
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,20 @@
+###########################################################################
+## Copyright (C) 2009 Tavian Barnes <tavianator@gmail.com> ##
+## ##
+## This file is part of The Dimension Build Suite. ##
+## ##
+## The Dimension Build 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 Build 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/>. ##
+###########################################################################
+
+SUBDIRS = libdimension
diff --git a/tests/libdimension/Makefile.am b/tests/libdimension/Makefile.am
new file mode 100644
index 0000000..3a0e15c
--- /dev/null
+++ b/tests/libdimension/Makefile.am
@@ -0,0 +1,31 @@
+###########################################################################
+## Copyright (C) 2009 Tavian Barnes <tavianator@gmail.com> ##
+## ##
+## This file is part of The Dimension Build Suite. ##
+## ##
+## The Dimension Build 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 Build 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/>. ##
+###########################################################################
+
+check_PROGRAMS = error-test \
+ warning-test
+TESTS = $(check_PROGRAMS)
+XFAIL_TESTS = error-test
+
+INCLUDES = -I$(top_srcdir)/libdimension
+
+error_test_SOURCES = error.c
+error_test_LDADD = ../../libdimension/libdimension.la
+
+warning_test_SOURCES = warning.c
+warning_test_LDADD = ../../libdimension/libdimension.la
diff --git a/tests/libdimension/error.c b/tests/libdimension/error.c
new file mode 100644
index 0000000..2bd745d
--- /dev/null
+++ b/tests/libdimension/error.c
@@ -0,0 +1,32 @@
+/*************************************************************************
+ * Copyright (C) 2009 Tavian Barnes <tavianator@gmail.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/>. *
+ *************************************************************************/
+
+/* Make sure that errors terminate us - this test should fail */
+
+#include <dimension.h>
+#include <stdlib.h>
+
+int
+main()
+{
+ dmnsn_set_resilience(DMNSN_SEVERITY_LOW);
+ dmnsn_error(DMNSN_SEVERITY_LOW, "This error is expected.");
+
+ return EXIT_SUCCESS;
+}
diff --git a/tests/libdimension/warning.c b/tests/libdimension/warning.c
new file mode 100644
index 0000000..ac41e70
--- /dev/null
+++ b/tests/libdimension/warning.c
@@ -0,0 +1,53 @@
+/*************************************************************************
+ * Copyright (C) 2009 Tavian Barnes <tavianator@gmail.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/>. *
+ *************************************************************************/
+
+/* Make sure warnings don't kill us - this test should pass */
+
+#include <dimension.h>
+#include <stdlib.h>
+
+int
+main()
+{
+ if (dmnsn_get_resilience() != DMNSN_SEVERITY_MEDIUM) {
+ return EXIT_FAILURE;
+ }
+
+ dmnsn_set_resilience(DMNSN_SEVERITY_LOW);
+ if (dmnsn_get_resilience() != DMNSN_SEVERITY_LOW) {
+ return EXIT_FAILURE;
+ }
+
+ dmnsn_set_resilience(DMNSN_SEVERITY_MEDIUM);
+ if (dmnsn_get_resilience() != DMNSN_SEVERITY_MEDIUM) {
+ return EXIT_FAILURE;
+ }
+
+ dmnsn_error(DMNSN_SEVERITY_LOW, "This warning is expected.");
+
+ dmnsn_set_resilience(DMNSN_SEVERITY_HIGH);
+ if (dmnsn_get_resilience() != DMNSN_SEVERITY_HIGH) {
+ return EXIT_FAILURE;
+ }
+
+ dmnsn_error(DMNSN_SEVERITY_LOW, "This warning is expected.");
+ dmnsn_error(DMNSN_SEVERITY_MEDIUM, "This warning is expected.");
+
+ return EXIT_SUCCESS;
+}