Add machinery for C++14, C++17 and C++20 testing
Support running testcases conditional on the compiler supporting a each language version, like we already handle C++11. Currently no testcases are actually run in this way for these newer language versions.
This commit is contained in:
parent
b5ad734fdf
commit
07f0b732ba
21 changed files with 133 additions and 16 deletions
|
|
@ -7,6 +7,9 @@ CFFI = @CFFIBIN@
|
|||
SCRIPTSUFFIX = _runme.lisp
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -91,7 +91,10 @@ CPP_TEST_BROKEN += \
|
|||
template_default_pointer \
|
||||
template_private_assignment \
|
||||
template_expr \
|
||||
$(CPP11_TEST_BROKEN)
|
||||
$(CPP11_TEST_BROKEN) \
|
||||
$(CPP14_TEST_BROKEN) \
|
||||
$(CPP17_TEST_BROKEN) \
|
||||
$(CPP20_TEST_BROKEN)
|
||||
|
||||
|
||||
# Broken C test cases. (Can be run individually using: make testcase.ctest)
|
||||
|
|
@ -632,6 +635,24 @@ CPP11_TEST_BROKEN = \
|
|||
# cpp11_variadic_templates \ # Broken for some languages (such as Java)
|
||||
# cpp11_reference_wrapper \ # No typemaps
|
||||
|
||||
# C++14 test cases.
|
||||
CPP14_TEST_CASES += \
|
||||
|
||||
# Broken C++14 test cases.
|
||||
CPP14_TEST_BROKEN = \
|
||||
|
||||
# C++17 test cases.
|
||||
CPP17_TEST_CASES += \
|
||||
|
||||
# Broken C++17 test cases.
|
||||
CPP17_TEST_BROKEN = \
|
||||
|
||||
# C++20 test cases.
|
||||
CPP20_TEST_CASES += \
|
||||
|
||||
# Broken C++20 test cases.
|
||||
CPP20_TEST_BROKEN = \
|
||||
|
||||
# Doxygen support test cases: can only be used with languages supporting
|
||||
# Doxygen comment translation (currently Python and Java) and only if not
|
||||
# disabled by configure via SKIP_DOXYGEN_TEST_CASES.
|
||||
|
|
@ -699,6 +720,18 @@ ifeq (1,$(HAVE_CXX11))
|
|||
CPP_TEST_CASES += $(CPP11_TEST_CASES)
|
||||
endif
|
||||
|
||||
ifeq (1,$(HAVE_CXX14))
|
||||
CPP_TEST_CASES += $(CPP14_TEST_CASES)
|
||||
endif
|
||||
|
||||
ifeq (1,$(HAVE_CXX17))
|
||||
CPP_TEST_CASES += $(CPP17_TEST_CASES)
|
||||
endif
|
||||
|
||||
ifeq (1,$(HAVE_CXX20))
|
||||
CPP_TEST_CASES += $(CPP20_TEST_CASES)
|
||||
endif
|
||||
|
||||
# C test cases. (Can be run individually using: make testcase.ctest)
|
||||
C_TEST_CASES += \
|
||||
arrays \
|
||||
|
|
@ -783,6 +816,9 @@ command_line_define.ctest: SWIGOPT += -DFOO
|
|||
C_TEST_CASES := $(filter-out $(FAILING_C_TESTS),$(C_TEST_CASES))
|
||||
CPP_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP_TEST_CASES))
|
||||
CPP11_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP11_TEST_CASES))
|
||||
CPP14_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP14_TEST_CASES))
|
||||
CPP17_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP17_TEST_CASES))
|
||||
CPP20_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP20_TEST_CASES))
|
||||
MULTI_CPP_TEST_CASES := $(filter-out $(FAILING_MULTI_CPP_TESTS),$(MULTI_CPP_TEST_CASES))
|
||||
|
||||
|
||||
|
|
@ -796,6 +832,9 @@ BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \
|
|||
|
||||
ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \
|
||||
$(CPP11_TEST_CASES:=.clean) \
|
||||
$(CPP14_TEST_CASES:=.clean) \
|
||||
$(CPP17_TEST_CASES:=.clean) \
|
||||
$(CPP20_TEST_CASES:=.clean) \
|
||||
$(C_TEST_CASES:=.clean) \
|
||||
$(MULTI_CPP_TEST_CASES:=.clean) \
|
||||
$(CPP_TEST_BROKEN:=.clean) \
|
||||
|
|
@ -824,6 +863,12 @@ check-cpp: $(CPP_TEST_CASES:=.cpptest)
|
|||
|
||||
check-cpp11: $(CPP11_TEST_CASES:=.cpptest)
|
||||
|
||||
check-cpp14: $(CPP14_TEST_CASES:=.cpptest)
|
||||
|
||||
check-cpp17: $(CPP17_TEST_CASES:=.cpptest)
|
||||
|
||||
check-cpp20: $(CPP20_TEST_CASES:=.cpptest)
|
||||
|
||||
check-multicpp: $(MULTI_CPP_TEST_CASES:=.multicpptest)
|
||||
|
||||
ifdef HAS_DOXYGEN
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ CSHARPCILINTERPRETER_FLAGS = @CSHARPCILINTERPRETER_FLAGS@
|
|||
CSHARPCONVERTPATH = @top_srcdir@/@CSHARPCONVERTPATH@
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = ../@top_srcdir@
|
||||
top_builddir = ../@top_builddir@
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
LANGUAGE = d
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = ../@top_srcdir@
|
||||
top_builddir = ../@top_builddir@
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ LANGUAGE = errors
|
|||
ERROR_EXT = newerr
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@ SCRIPTSUFFIX = _runme.go
|
|||
SO = @SO@
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ VARIANT =
|
|||
SCRIPTSUFFIX = _runme.scm
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ SCRIPTSUFFIX = _runme.java
|
|||
SKIP_DOXYGEN_TEST_CASES = @JAVA_SKIP_DOXYGEN_TEST_CASES@
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = ../@top_srcdir@
|
||||
top_builddir = ../@top_builddir@
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ OBJEXT = @OBJEXT@
|
|||
SO = @SO@
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ LUA = @LUABIN@
|
|||
SCRIPTSUFFIX = _runme.lua
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ MZSCHEME = mzscheme
|
|||
SCRIPTSUFFIX = _runme.scm
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ VARIANT = _static
|
|||
SCRIPTSUFFIX = _runme.ml
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ SCRIPTSUFFIX = _runme.m
|
|||
PCHSUPPORT = @PCHSUPPORT@
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ SCRIPTSUFFIX = _runme.pl
|
|||
TEST_RUNNER = $(srcdir)/run-perl-test.pl
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ LANGUAGE = php
|
|||
SCRIPTSUFFIX = _runme.php
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ PYCODESTYLE = @PYCODESTYLE@
|
|||
PYCODESTYLE_FLAGS = --ignore=E252,E30,E402,E501,E731,E741,W291,W391
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ R_OPT = --quiet --no-save --no-restore
|
|||
RUNR = R CMD BATCH $(R_OPT) '--args $(SCRIPTDIR)'
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ RUBY = @RUBY@
|
|||
SCRIPTSUFFIX = _runme.rb
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ SCILAB_OPT = @SCILABOPT@
|
|||
SCRIPTSUFFIX = _runme.sci
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = ../@top_srcdir@
|
||||
top_builddir = ../@top_builddir@
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ TCLSH = tclsh
|
|||
SCRIPTSUFFIX = _runme.tcl
|
||||
|
||||
HAVE_CXX11 = @HAVE_CXX11@
|
||||
HAVE_CXX14 = @HAVE_CXX14@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
HAVE_CXX20 = @HAVE_CXX20@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
|
|
|||
45
configure.ac
45
configure.ac
|
|
@ -304,40 +304,52 @@ if test x"$enable_cpp11_testing" = xyes; then
|
|||
CXX_SAVED=$CXX
|
||||
CXXCPP_SAVED=$CXXCPP
|
||||
|
||||
# Test for c++17
|
||||
# Test for c++20
|
||||
CXXCPP=" "
|
||||
AX_CXX_COMPILE_STDCXX(17, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 to C++17 testing is enabled])
|
||||
if test "$HAVE_CXX17" = "1"; then
|
||||
AX_CXX_COMPILE_STDCXX(20, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 to C++20 testing is enabled])
|
||||
if test "$HAVE_CXX20" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS"
|
||||
HAVE_CXX17="1"
|
||||
HAVE_CXX14="1"
|
||||
HAVE_CXX11="1"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
# Test for c++14
|
||||
# Test for c++17
|
||||
CXXCPP=" "
|
||||
CXX=$CXX_SAVED
|
||||
AX_CXX_COMPILE_STDCXX(14, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 to C++14 testing is enabled])
|
||||
if test "$HAVE_CXX14" = "1"; then
|
||||
AX_CXX_COMPILE_STDCXX(17, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 to C++17 testing is enabled])
|
||||
if test "$HAVE_CXX17" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS"
|
||||
HAVE_CXX14="1"
|
||||
HAVE_CXX11="1"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
# Test for c++11
|
||||
# Test for c++14
|
||||
CXXCPP=" "
|
||||
CXX=$CXX_SAVED
|
||||
AX_CXX_COMPILE_STDCXX(11, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 testing is enabled])
|
||||
if test "$HAVE_CXX11" = "1"; then
|
||||
AX_CXX_COMPILE_STDCXX(14, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 to C++14 testing is enabled])
|
||||
if test "$HAVE_CXX14" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS"
|
||||
HAVE_CXX11="1"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
# Test for c++11
|
||||
CXXCPP=" "
|
||||
CXX=$CXX_SAVED
|
||||
AX_CXX_COMPILE_STDCXX(11, [noext], [optional])
|
||||
AC_MSG_CHECKING([whether C++11 testing is enabled])
|
||||
if test "$HAVE_CXX11" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
@ -346,6 +358,9 @@ if test x"$enable_cpp11_testing" = xyes; then
|
|||
CXXCPP=$CXXCPP_SAVED
|
||||
fi
|
||||
AC_SUBST(HAVE_CXX11)
|
||||
AC_SUBST(HAVE_CXX14)
|
||||
AC_SUBST(HAVE_CXX17)
|
||||
AC_SUBST(HAVE_CXX20)
|
||||
|
||||
# On darwin 10.7,10.8,10.9 using clang++, need to ensure using
|
||||
# libc++ for tests and examples to run under mono. May affect
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue