[Libreoffice-commits] cppunit.git: 7 commits - configure.ac doc/FAQ include/cppunit INSTALL-unix m4/ax_cxx_rtti.m4 Makefile.am NEWS src/cppunit
Markus Mohrhard
markus.mohrhard at googlemail.com
Sat Oct 15 15:46:55 UTC 2016
INSTALL-unix | 15 --------
Makefile.am | 2 -
NEWS | 5 ++
configure.ac | 23 +-----------
doc/FAQ | 4 +-
include/cppunit/config/config-bcb5.h | 10 -----
include/cppunit/config/config-evc4.h | 10 -----
include/cppunit/config/config-mac.h | 10 -----
include/cppunit/config/config-msvc6.h | 14 -------
include/cppunit/extensions/HelperMacros.h | 15 +-------
include/cppunit/extensions/TestNamer.h | 20 +---------
include/cppunit/extensions/TypeInfoHelper.h | 6 ---
include/cppunit/portability/SmartPtr.h | 4 --
m4/ax_cxx_rtti.m4 | 52 ----------------------------
src/cppunit/TestNamer.cpp | 11 -----
src/cppunit/TypeInfoHelper.cpp | 6 ---
16 files changed, 15 insertions(+), 192 deletions(-)
New commits:
commit e8c0def96e6ca4370377747bda1d8a8c0dab4867
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:46:30 2016 +0200
update NEWS
diff --git a/NEWS b/NEWS
index 65dd5d8..1ea436a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
New in CppUnit 1.14.0:
---------------------
+* Portability:
+ - Always build with C++11
+
+ - Always require RTTI support
+
* Test Plug-in Runner:
- Fixed crash on Win64 in test runner (fdo#81433)
commit fcc84eec40acf8506f2a5fcc3fe0399663d1ce18
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:46:16 2016 +0200
cppunit.m4 is gone
diff --git a/Makefile.am b/Makefile.am
index e39432c..d78f862 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,7 +25,7 @@ docinternal = \
doc/makedox.bat
m4dir = $(datadir)/aclocal
-m4_DATA = cppunit.m4
+m4_DATA =
m4internal = \
m4/ac_cxx_have_strstream.m4 \
commit 442300567b57ff6a02b180e36407b93e2177a3fc
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:45:56 2016 +0200
always use std::unique_ptr
diff --git a/include/cppunit/portability/SmartPtr.h b/include/cppunit/portability/SmartPtr.h
index 5fa9c9d..76e2183 100644
--- a/include/cppunit/portability/SmartPtr.h
+++ b/include/cppunit/portability/SmartPtr.h
@@ -1,10 +1,6 @@
#ifndef CPPUNIT_PORTABILITY_CPPUNITSMARTPTR_H
#define CPPUNIT_PORTABILITY_CPPUNITSMARTPTR_H
-#if HAVE_CXX11
#define CppUnitSmartPtr std::unique_ptr
-#else
-#define CppUnitSmartPtr std::auto_ptr
-#endif
#endif // CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
commit c314941600c5bd601831e6204b04b06a223064e7
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:09:59 2016 +0200
replace with std::unique_ptr
diff --git a/include/cppunit/extensions/HelperMacros.h b/include/cppunit/extensions/HelperMacros.h
index e883960..3dfab2d 100644
--- a/include/cppunit/extensions/HelperMacros.h
+++ b/include/cppunit/extensions/HelperMacros.h
@@ -165,24 +165,15 @@
*/
#define CPPUNIT_TEST_SUITE_END() \
} \
- \
- struct CppUnitExDeleter { /* avoid deprecated auto_ptr warnings */ \
- CPPUNIT_NS::TestSuite *suite; \
- CppUnitExDeleter() : suite (nullptr) {} \
- ~CppUnitExDeleter() { delete suite; } \
- CPPUNIT_NS::TestSuite *release() { \
- CPPUNIT_NS::TestSuite *tmp = suite; suite = nullptr; return tmp; \
- } \
- }; \
\
public: \
static CPPUNIT_NS::TestSuite *suite() \
{ \
const CPPUNIT_NS::TestNamer &namer = getTestNamer__(); \
- CppUnitExDeleter guard; \
- guard.suite = new CPPUNIT_NS::TestSuite( namer.getFixtureName() ); \
+ std::unique_ptr<CPPUNIT_NS::TestSuite> guard( \
+ new CPPUNIT_NS::TestSuite( namer.getFixtureName() )); \
CPPUNIT_NS::ConcretTestFixtureFactory<TestFixtureType> factory; \
- CPPUNIT_NS::TestSuiteBuilderContextBase context( *guard.suite, \
+ CPPUNIT_NS::TestSuiteBuilderContextBase context( *guard.get(), \
namer, \
factory ); \
TestFixtureType::addTestsToSuite( context ); \
commit 29ae31614fb70e192f63fdab1c65105493319edc
Author: GARCIN David <david.garcin at openwide.fr>
Date: Sat Oct 15 17:01:25 2016 +0200
HelperMacros: fix deprecated NULL macro usage
Using gcc (currently using gcc 5.2) flag -Wzero-as-null-pointer-constant
triggers warnings:
[...]include/cppunit/extensions/HelperMacros.h:171:31: error: zero as null
pointer constant [-Werror=zero-as-null-pointer-constant]
CppUnitExDeleter() : suite (0) {} \
^
[...]include/cppunit/extensions/HelperMacros.h:174:45: error: zero as null
pointer constant [-Werror=zero-as-null-pointer-constant]
CPPUNIT_NS::TestSuite *tmp = suite; suite = NULL; return tmp; \
^
Using nullptr is the c++11 way to initialize pointers with null value [1].
[1] http://en.cppreference.com/w/cpp/language/nullptr
diff --git a/include/cppunit/extensions/HelperMacros.h b/include/cppunit/extensions/HelperMacros.h
index 43fc08e..e883960 100644
--- a/include/cppunit/extensions/HelperMacros.h
+++ b/include/cppunit/extensions/HelperMacros.h
@@ -168,10 +168,10 @@
\
struct CppUnitExDeleter { /* avoid deprecated auto_ptr warnings */ \
CPPUNIT_NS::TestSuite *suite; \
- CppUnitExDeleter() : suite (0) {} \
+ CppUnitExDeleter() : suite (nullptr) {} \
~CppUnitExDeleter() { delete suite; } \
CPPUNIT_NS::TestSuite *release() { \
- CPPUNIT_NS::TestSuite *tmp = suite; suite = NULL; return tmp; \
+ CPPUNIT_NS::TestSuite *tmp = suite; suite = nullptr; return tmp; \
} \
}; \
\
commit 42bd37a4b8d8feab2d30761648b51eaf20623abb
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:28:02 2016 +0200
we always require RTTI now
RTTI is supported by any decent compiler and with the mandatory c++11 support
we are no longer supporting older compilers anyway.
diff --git a/INSTALL-unix b/INSTALL-unix
index 0e3d98e..6a4a5cc 100644
--- a/INSTALL-unix
+++ b/INSTALL-unix
@@ -1,21 +1,6 @@
See the file INSTALL for basic instructions. A short explanation for
each non-standard configure option follows.
- --disable-typeinfo-name
-
-Some output from the library will use a class name to distinguish
-between tests. Normally, the Run-Time Type Information (RTTI) system
-is used (specifically, the type_info::name() function) to generate the
-name. Some compilers return human-readable names via this interface.
-Other compilers do not.
-
-If your compiler does not generate a pleasing class name, specify
-this option; the names will be generated by other means. The names
-are used only for diagnostic purposes -- no functionality will be
-lost nor gained by using this option.
-
-
-
System Notes
------------
diff --git a/configure.ac b/configure.ac
index af0adef..9dd6aca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,24 +47,8 @@ AC_CXX_HAVE_STRSTREAM
BB_ENABLE_DOXYGEN
# Compiler characteristics
-AC_CXX_RTTI
AX_CXX_GCC_ABI_DEMANGLE
AC_CXX_STRING_COMPARE_STRING_FIRST
-
-AC_ARG_ENABLE([typeinfo-name],
- [AS_HELP_STRING([--disable-typeinfo-name], [Disable use of RTTI for class names])],
- [enable_typeinfo_name="$enableval"],
- [enable_typeinfo_name=yes]
-)
-AS_IF([test x"$enable_typeinfo_name" = "xno" -o x"$HAVE_RTTI" != "x1"], [
- use_typeinfo="yes"
- typeinfoval="CPPUNIT_HAVE_RTTI"
-], [
- use_typeinfo="no"
- typeinfoval="0"
-])
-AC_DEFINE_UNQUOTED(USE_TYPEINFO_NAME, [$typeinfoval],
- [Define to 1 to use type_info::name() for class names])
AX_CXX_COMPILE_STDCXX_11(noext, mandatory)
# =================================
@@ -84,6 +68,7 @@ AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION, [cppunit_interface_age])
AC_SUBST(LT_AGE)
+
# ================
# Check for cflags
# ================
@@ -181,7 +166,6 @@ Build configuration:
debug: ${enable_debug}
docs: ${enable_doc}
werror: ${enable_werror}
- typeinfo-name: ${use_typeinfo}
optional-features: ${enable_optional}
==============================================================================
])
diff --git a/doc/FAQ b/doc/FAQ
index e43cdba..f647c54 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -9,7 +9,7 @@ Frequently Asked Questions:
Yes, there is. Macros have been created to take care of the repetitive
work. Look up include/extensions/HelperMacros.h in CppUnit documentation.
Most of CppUnit test suite is also written that way since they remain
-compatible as CppUnit evolve. They also use RTTI if available.
+compatible as CppUnit evolve.
2) Questions related to Microsoft Visual VC++
@@ -28,4 +28,4 @@ the correct library.
I really don't have a clue. All CppUnit's headers starts by either
including Portability.h or another CppUnit's header. Portability.h includes
config-msvc6.h which disable that specific warning. The warning is generated
-by TestFactoryRegistry::m_factories. A solution to this problem is welcome.
\ No newline at end of file
+by TestFactoryRegistry::m_factories. A solution to this problem is welcome.
diff --git a/include/cppunit/config/config-bcb5.h b/include/cppunit/config/config-bcb5.h
index d491452..7bcde53 100644
--- a/include/cppunit/config/config-bcb5.h
+++ b/include/cppunit/config/config-bcb5.h
@@ -26,16 +26,6 @@
#define CPPUNIT_HAVE_NAMESPACES 1
#endif
-/* define if the compiler supports Run-Time Type Identification */
-#ifndef CPPUNIT_HAVE_RTTI
-#define CPPUNIT_HAVE_RTTI 1
-#endif
-
-/* Define to 1 to use type_info::name() for class names */
-#ifndef CPPUNIT_USE_TYPEINFO_NAME
-#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
-#endif
-
#define CPPUNIT_HAVE_SSTREAM 1
/* Name of package */
diff --git a/include/cppunit/config/config-evc4.h b/include/cppunit/config/config-evc4.h
index a791698..ae93ff3 100644
--- a/include/cppunit/config/config-evc4.h
+++ b/include/cppunit/config/config-evc4.h
@@ -30,16 +30,6 @@
#define CPPUNIT_HAVE_NAMESPACES 1
#endif
-/* define if the compiler supports Run-Time Type Identification */
-#ifndef CPPUNIT_HAVE_RTTI
-#define CPPUNIT_HAVE_RTTI 0
-#endif
-
-/* Define to 1 to use type_info::name() for class names */
-#ifndef CPPUNIT_USE_TYPEINFO_NAME
-#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
-#endif
-
#define CPPUNIT_NO_STREAM 1
#define CPPUNIT_NO_ASSERT 1
diff --git a/include/cppunit/config/config-mac.h b/include/cppunit/config/config-mac.h
index 4ace906..755429b 100644
--- a/include/cppunit/config/config-mac.h
+++ b/include/cppunit/config/config-mac.h
@@ -34,11 +34,6 @@
#define CPPUNIT_HAVE_NAMESPACES 1
#endif
-/* define if the compiler supports Run-Time Type Identification */
-#ifndef CPPUNIT_HAVE_RTTI
-#define CPPUNIT_HAVE_RTTI 1
-#endif
-
/* define if the compiler has stringstream */
#ifndef CPPUNIT_HAVE_SSTREAM
#define CPPUNIT_HAVE_SSTREAM 1
@@ -49,10 +44,5 @@
#define CPPUNIT_HAVE_STRSTREAM 1
#endif
-/* Define to 1 to use type_info::name() for class names */
-#ifndef CPPUNIT_USE_TYPEINFO_NAME
-#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
-#endif
-
/* _INCLUDE_CPPUNIT_CONFIG_MAC_H */
#endif
diff --git a/include/cppunit/config/config-msvc6.h b/include/cppunit/config/config-msvc6.h
index 54bce82..2607a46 100644
--- a/include/cppunit/config/config-msvc6.h
+++ b/include/cppunit/config/config-msvc6.h
@@ -30,20 +30,6 @@
#define CPPUNIT_HAVE_NAMESPACES 1
#endif
-/* define if the compiler supports Run-Time Type Identification */
-#ifndef CPPUNIT_HAVE_RTTI
-# ifdef _CPPRTTI // Defined by the compiler option /GR
-# define CPPUNIT_HAVE_RTTI 1
-# else
-# define CPPUNIT_HAVE_RTTI 0
-# endif
-#endif
-
-/* Define to 1 to use type_info::name() for class names */
-#ifndef CPPUNIT_USE_TYPEINFO_NAME
-#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
-#endif
-
#define CPPUNIT_HAVE_SSTREAM 1
/* Name of package */
diff --git a/include/cppunit/extensions/TestNamer.h b/include/cppunit/extensions/TestNamer.h
index 5a6471c..3907569 100644
--- a/include/cppunit/extensions/TestNamer.h
+++ b/include/cppunit/extensions/TestNamer.h
@@ -4,19 +4,14 @@
#include <cppunit/Portability.h>
#include <string>
-#if CPPUNIT_HAVE_RTTI
-# include <typeinfo>
-#endif
+#include <typeinfo>
/*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType )
* \brief Declares a TestNamer.
*
- * Declares a TestNamer for the specified type, using RTTI if enabled, otherwise
- * using macro string expansion.
- *
- * RTTI is used if CPPUNIT_USE_TYPEINFO_NAME is defined and not null.
+ * Declares a TestNamer for the specified type
*
* \code
* void someMethod()
@@ -29,19 +24,11 @@
* \relates TestNamer
* \see TestNamer
*/
-#if CPPUNIT_USE_TYPEINFO_NAME
# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) )
-#else
-# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
- CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) )
-#endif
-
-
CPPUNIT_NS_BEGIN
-
/*! \brief Names a test or a fixture suite.
*
* TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL.
@@ -50,12 +37,10 @@ CPPUNIT_NS_BEGIN
class CPPUNIT_API TestNamer
{
public:
-#if CPPUNIT_HAVE_RTTI
/*! \brief Constructs a namer using the fixture's type-info.
* \param typeInfo Type-info of the fixture type. Use to name the fixture suite.
*/
TestNamer( const std::type_info &typeInfo );
-#endif
/*! \brief Constructs a namer using the specified fixture name.
* \param fixtureName Name of the fixture suite. Usually extracted using a macro.
@@ -82,7 +67,6 @@ protected:
std::string m_fixtureName;
};
-
CPPUNIT_NS_END
#endif // CPPUNIT_EXTENSIONS_TESTNAMER_H
diff --git a/include/cppunit/extensions/TypeInfoHelper.h b/include/cppunit/extensions/TypeInfoHelper.h
index c0ecdbc..1adec83 100644
--- a/include/cppunit/extensions/TypeInfoHelper.h
+++ b/include/cppunit/extensions/TypeInfoHelper.h
@@ -3,14 +3,11 @@
#include <cppunit/Portability.h>
-#if CPPUNIT_HAVE_RTTI
-
#include <typeinfo>
#include <string>
CPPUNIT_NS_BEGIN
-
/**! \brief Helper to use type_info.
*/
class CPPUNIT_API TypeInfoHelper
@@ -25,9 +22,6 @@ CPPUNIT_NS_BEGIN
static std::string getClassName( const std::type_info &info );
};
-
CPPUNIT_NS_END
-#endif // CPPUNIT_HAVE_RTTI
-
#endif // CPPUNIT_TYPEINFOHELPER_H
diff --git a/m4/ax_cxx_rtti.m4 b/m4/ax_cxx_rtti.m4
deleted file mode 100644
index 97cfe06..0000000
--- a/m4/ax_cxx_rtti.m4
+++ /dev/null
@@ -1,52 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_cxx_rtti.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CXX_RTTI
-#
-# DESCRIPTION
-#
-# If the compiler supports Run-Time Type Identification (typeinfo header
-# and typeid keyword), define HAVE_RTTI.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Todd Veldhuizen
-# Copyright (c) 2008 Luc Maisonobe <luc at spaceroots.org>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 6
-
-AU_ALIAS([AC_CXX_RTTI], [AX_CXX_RTTI])
-AC_DEFUN([AX_CXX_RTTI],
-[AC_CACHE_CHECK(whether the compiler supports Run-Time Type Identification,
-ax_cv_cxx_rtti,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <typeinfo>
-class Base { public :
- Base () {}
- virtual int f () { return 0; }
- };
-class Derived : public Base { public :
- Derived () {}
- virtual int f () { return 1; }
- };
-],[Derived d;
-Base *ptr = &d;
-return typeid (*ptr) == typeid (Derived);
-],
- ax_cv_cxx_rtti=yes, ax_cv_cxx_rtti=no)
- AC_LANG_RESTORE
-])
-if test "$ax_cv_cxx_rtti" = yes; then
- AC_DEFINE(HAVE_RTTI,1,
- [define if the compiler supports Run-Time Type Identification])
-fi
-])
diff --git a/src/cppunit/TestNamer.cpp b/src/cppunit/TestNamer.cpp
index 3bfe985..0cdf258 100644
--- a/src/cppunit/TestNamer.cpp
+++ b/src/cppunit/TestNamer.cpp
@@ -2,43 +2,32 @@
#include <cppunit/extensions/TypeInfoHelper.h>
#include <string>
-
CPPUNIT_NS_BEGIN
-
-#if CPPUNIT_HAVE_RTTI
TestNamer::TestNamer( const std::type_info &typeInfo )
: m_fixtureName( TypeInfoHelper::getClassName( typeInfo ) )
{
}
-#endif
-
TestNamer::TestNamer( const std::string &fixtureName )
: m_fixtureName( fixtureName )
{
}
-
TestNamer::~TestNamer()
{
}
-
std::string
TestNamer::getFixtureName() const
{
return m_fixtureName;
}
-
std::string
TestNamer::getTestNameFor( const std::string &testMethodName ) const
{
return getFixtureName() + "::" + testMethodName;
}
-
-
-
CPPUNIT_NS_END
diff --git a/src/cppunit/TypeInfoHelper.cpp b/src/cppunit/TypeInfoHelper.cpp
index f2b9a67..aa24a80 100644
--- a/src/cppunit/TypeInfoHelper.cpp
+++ b/src/cppunit/TypeInfoHelper.cpp
@@ -1,8 +1,6 @@
#include <cppunit/Portability.h>
#include <cppunit/extensions/TypeInfoHelper.h>
-#if CPPUNIT_HAVE_RTTI
-
#include <string>
#if CPPUNIT_HAVE_GCC_ABI_DEMANGLE
@@ -13,7 +11,6 @@
CPPUNIT_NS_BEGIN
-
std::string
TypeInfoHelper::getClassName( const std::type_info &info )
{
@@ -59,7 +56,4 @@ TypeInfoHelper::getClassName( const std::type_info &info )
return name;
}
-
CPPUNIT_NS_END
-
-#endif // CPPUNIT_HAVE_RTTI
commit 2917f424d32dc9f7128ecf4d47cdcc48fb0781d2
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Oct 15 17:26:43 2016 +0200
we always require c++11 now
diff --git a/configure.ac b/configure.ac
index ffd5fad..af0adef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,6 +65,7 @@ AS_IF([test x"$enable_typeinfo_name" = "xno" -o x"$HAVE_RTTI" != "x1"], [
])
AC_DEFINE_UNQUOTED(USE_TYPEINFO_NAME, [$typeinfoval],
[Define to 1 to use type_info::name() for class names])
+AX_CXX_COMPILE_STDCXX_11(noext, mandatory)
# =================================
# Libtool/Version Makefile settings
@@ -97,10 +98,6 @@ AC_ARG_ENABLE(optional_features,
[enable_optional=yes]
)
-AS_IF([test "x$enable_optional" != "xno"], [
- AX_CXX_COMPILE_STDCXX_11(noext, mandatory)
-])
-
AM_CONDITIONAL([WITH_OPTIONAL_FEATURES], [test "x$enable_optional" != "xno"])
# =====
More information about the Libreoffice-commits
mailing list