From 476af03aad9e492658d269edca5bab0283246799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6=20Fahlke?= <jorrit@jorrit.de> Date: Mon, 27 Jul 2015 17:16:06 +0200 Subject: [PATCH] [test][typetraits][warnings] Split the test for deprecated functionality in typetraits.hh into its own testcase. That way I can simply disable deprecation warnings there. There was a mechanism with apparently similar goal involving the define DISABLE_DEPRECATED_METHOD_CHECKS. However, I could not figure out how that was intended to work, the only occurances of DISABLE_DEPRECATED_METHOD_CHECKS were in typetraitstest.hh. Probably you were supposed to set that define by hand in your CPPFLAGS, which I consider unacceptable. --- dune/common/test/.gitignore | 1 + dune/common/test/CMakeLists.txt | 2 + dune/common/test/Makefile.am | 3 ++ dune/common/test/typetraitstest.cc | 13 ------- dune/common/test/typetraitstest_deprecated.cc | 37 +++++++++++++++++++ 5 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 dune/common/test/typetraitstest_deprecated.cc diff --git a/dune/common/test/.gitignore b/dune/common/test/.gitignore index e24e6f6ef..a30bd5f9b 100644 --- a/dune/common/test/.gitignore +++ b/dune/common/test/.gitignore @@ -70,6 +70,7 @@ /tuplestest_tr1 /tupleutilitytest /typetraitstest +/typetraitstest_deprecated /utilitytest tags diff --git a/dune/common/test/CMakeLists.txt b/dune/common/test/CMakeLists.txt index 05493e501..05d2d0b55 100644 --- a/dune/common/test/CMakeLists.txt +++ b/dune/common/test/CMakeLists.txt @@ -35,6 +35,7 @@ set(TESTS tuplestest tupleutilitytest typetraitstest + typetraitstest_deprecated utilitytest) #test that should build but fail to run successfully @@ -166,6 +167,7 @@ set_target_properties(testdebugallocator_fail5 PROPERTIES COMPILE_DEFINITIONS "F add_executable("tuplestest" tuplestest.cc) add_executable("tupleutilitytest" tupleutilitytest.cc) add_executable("typetraitstest" typetraitstest.cc) +add_executable("typetraitstest_deprecated" typetraitstest_deprecated.cc) add_executable("utilitytest" utilitytest.cc) set(TESTPROGS ${TESTS} ${FAILTESTS}) diff --git a/dune/common/test/Makefile.am b/dune/common/test/Makefile.am index 597a3aadf..00a21fb7b 100644 --- a/dune/common/test/Makefile.am +++ b/dune/common/test/Makefile.am @@ -43,6 +43,7 @@ TESTPROGS = \ tuplestest \ tupleutilitytest \ typetraitstest \ + typetraitstest_deprecated \ utilitytest # which tests to run @@ -205,6 +206,8 @@ tupleutilitytest_SOURCES = tupleutilitytest.cc typetraitstest_SOURCES = typetraitstest.cc +typetraitstest_deprecated_SOURCES = typetraitstest_deprecated.cc + utilitytest_SOURCES = utilitytest.cc diff --git a/dune/common/test/typetraitstest.cc b/dune/common/test/typetraitstest.cc index 760664d99..6227ee135 100644 --- a/dune/common/test/typetraitstest.cc +++ b/dune/common/test/typetraitstest.cc @@ -26,19 +26,6 @@ int main() { assert( Dune::TypeTraits<int&>::isReference ); assert( not Dune::TypeTraits<int&&>::isReference ); -#ifndef DISABLE_DEPRECATED_METHOD_CHECKS - // Test TypeTraits::PointeeType - assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int>::PointeeType>::value) ); - assert( (Dune::is_same<int, Dune::TypeTraits<int*>::PointeeType>::value) ); - assert( (Dune::is_same<int*, Dune::TypeTraits<int**>::PointeeType>::value) ); - assert( (Dune::is_same<const int, Dune::TypeTraits<const int*>::PointeeType>::value) ); - assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int* const>::PointeeType>::value) ); - - // Test TypeTraits::ReferredType - assert( (Dune::is_same<int, Dune::TypeTraits<int>::ReferredType>::value) ); - assert( (Dune::is_same<int, Dune::TypeTraits<int&>::ReferredType>::value) ); -#endif // DISABLE_DEPRECATED_METHOD_CHECKS - // Test is_pointer assert( not Dune::is_pointer<int>::value ); assert( Dune::is_pointer<int*>::value ); diff --git a/dune/common/test/typetraitstest_deprecated.cc b/dune/common/test/typetraitstest_deprecated.cc new file mode 100644 index 000000000..897ae4e04 --- /dev/null +++ b/dune/common/test/typetraitstest_deprecated.cc @@ -0,0 +1,37 @@ +// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +// vi: set et ts=4 sw=2 sts=2: +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/** \file + * \brief Test the deprecated functionality of the TypeTraits class. + */ + +#include <cassert> + +// Suppress deprecation warnings +// do this before including any other dune-headers +#include <dune/common/deprecated.hh> +#undef DUNE_DEPRECATED +#define DUNE_DEPRECATED +#undef DUNE_DEPRECATED_MSG +#define DUNE_DEPRECATED_MSG(text) + +#include <dune/common/typetraits.hh> + +int main() { + + // Test TypeTraits::PointeeType + assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int>::PointeeType>::value) ); + assert( (Dune::is_same<int, Dune::TypeTraits<int*>::PointeeType>::value) ); + assert( (Dune::is_same<int*, Dune::TypeTraits<int**>::PointeeType>::value) ); + assert( (Dune::is_same<const int, Dune::TypeTraits<const int*>::PointeeType>::value) ); + assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int* const>::PointeeType>::value) ); + + // Test TypeTraits::ReferredType + assert( (Dune::is_same<int, Dune::TypeTraits<int>::ReferredType>::value) ); + assert( (Dune::is_same<int, Dune::TypeTraits<int&>::ReferredType>::value) ); + + return 0; +} -- GitLab