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