From 2404976a5d1210b4547a76678aada49d0ae74e44 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 4 Oct 2009 19:05:07 +0000 Subject: New test framework. --- .gitignore | 2 +- Makefile.am | 3 ++- configure.ac | 4 +++- tests/Makefile.am | 20 ++++++++++++++++ tests/libdimension/Makefile.am | 31 ++++++++++++++++++++++++ tests/libdimension/error.c | 32 +++++++++++++++++++++++++ tests/libdimension/warning.c | 53 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 tests/Makefile.am create mode 100644 tests/libdimension/Makefile.am create mode 100644 tests/libdimension/error.c create mode 100644 tests/libdimension/warning.c 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 ## +## ## +## 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 . ## +########################################################################### + +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 ## +## ## +## 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 . ## +########################################################################### + +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 * + * * + * 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 . * + *************************************************************************/ + +/* Make sure that errors terminate us - this test should fail */ + +#include +#include + +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 * + * * + * 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 . * + *************************************************************************/ + +/* Make sure warnings don't kill us - this test should pass */ + +#include +#include + +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; +} -- cgit v1.2.3