summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2019-12-05 09:11:45 +0100
committerBruno Haible <bruno@clisp.org>2019-12-05 09:50:49 +0100
commitea45fdf1af3c1dc7ce603b0b7f3d50fd8475077e (patch)
tree884fb57629cf8a7ac9983ce4473467f280f99b37
parent6002009b76cda002a103ffb39945ba74c4dc9c75 (diff)
downloadgnulib-ea45fdf1af3c1dc7ce603b0b7f3d50fd8475077e.tar.gz
gnulib-ea45fdf1af3c1dc7ce603b0b7f3d50fd8475077e.tar.bz2
Add more C++ tests.
assert-h: Add C++ tests. * tests/test-assert-h-c++.cc: New file. * tests/test-assert-h-c++2.cc: New file. * modules/assert-h-c++-tests: New file. * modules/assert-h-tests: New file. ctype: Add C++ tests. * tests/test-ctype-c++.cc: New file. * tests/test-ctype-c++2.cc: New file. * modules/ctype-c++-tests: New file. * modules/ctype-tests (Depends-on): Add ctype-c++-tests. errno: Add C++ tests. * tests/test-errno-c++.cc: New file. * tests/test-errno-c++2.cc: New file. * modules/errno-c++-tests: New file. * modules/errno-tests (Depends-on): Add errno-c++-tests. float: Add C++ tests. * tests/test-float-c++.cc: New file. * tests/test-float-c++2.cc: New file. * modules/float-c++-tests: New file. * modules/float-tests (Depends-on): Add float-c++-tests. inttypes: Add more C++ tests. * tests/test-inttypes-c++2.cc: New file. * modules/inttypes-c++-tests (Files): Add it. (Makefile.am): Compile it. limits-h: Add C++ tests. * tests/test-limits-h-c++.cc: New file. * tests/test-limits-h-c++2.cc: New file. * modules/limits-h-c++-tests: New file. * modules/limits-h-tests (Depends-on): Add limits-h-c++-tests. stdarg: Add C++ tests. * tests/test-stdarg-c++.cc: New file. * tests/test-stdarg-c++2.cc: New file. * modules/stdarg-c++-tests: New file. * modules/stdarg-tests: New file. stdbool: Add C++ tests. * tests/test-stdbool-c++.cc: New file. * tests/test-stdbool-c++2.cc: New file. * modules/stdbool-c++-tests: New file. * modules/stdbool-tests (Depends-on): Add stdbool-c++-tests. stddef: Add C++ tests. * tests/test-stddef-c++.cc: New file. * tests/test-stddef-c++2.cc: New file. * modules/stddef-c++-tests: New file. * modules/stddef-tests (Depends-on): Add stddef-c++-tests. stdint: Add C++ tests. * tests/test-stdint-c++.cc: New file. * tests/test-stdint-c++2.cc: New file. * modules/stdint-c++-tests: New file. * modules/stdint-tests (Depends-on): Add stdint-c++-tests. wchar: Add more C++ tests. * tests/test-wchar-c++2.cc: New file. * modules/wchar-c++-tests (Files): Add it. (Makefile.am): Compile it. wctype-h: Add more C++ tests. * tests/test-wctype-h-c++2.cc: New file. * modules/wctype-h-c++-tests (Files): Add it. (Makefile.am): Compile it.
-rw-r--r--ChangeLog73
-rw-r--r--modules/assert-h-c++-tests18
-rw-r--r--modules/assert-h-tests7
-rw-r--r--modules/ctype-c++-tests19
-rw-r--r--modules/ctype-tests1
-rw-r--r--modules/errno-c++-tests18
-rw-r--r--modules/errno-tests1
-rw-r--r--modules/float-c++-tests18
-rw-r--r--modules/float-tests1
-rw-r--r--modules/inttypes-c++-tests3
-rw-r--r--modules/limits-h-c++-tests18
-rw-r--r--modules/limits-h-tests1
-rw-r--r--modules/stdarg-c++-tests18
-rw-r--r--modules/stdarg-tests7
-rw-r--r--modules/stdbool-c++-tests18
-rw-r--r--modules/stdbool-tests1
-rw-r--r--modules/stddef-c++-tests18
-rw-r--r--modules/stddef-tests1
-rw-r--r--modules/stdint-c++-tests18
-rw-r--r--modules/stdint-tests1
-rw-r--r--modules/wchar-c++-tests3
-rw-r--r--modules/wctype-h-c++-tests3
-rw-r--r--tests/test-assert-h-c++.cc28
-rw-r--r--tests/test-assert-h-c++2.cc20
-rw-r--r--tests/test-ctype-c++.cc35
-rw-r--r--tests/test-ctype-c++2.cc20
-rw-r--r--tests/test-errno-c++.cc28
-rw-r--r--tests/test-errno-c++2.cc20
-rw-r--r--tests/test-float-c++.cc28
-rw-r--r--tests/test-float-c++2.cc20
-rw-r--r--tests/test-inttypes-c++2.cc24
-rw-r--r--tests/test-limits-h-c++.cc28
-rw-r--r--tests/test-limits-h-c++2.cc20
-rw-r--r--tests/test-stdarg-c++.cc28
-rw-r--r--tests/test-stdarg-c++2.cc20
-rw-r--r--tests/test-stdbool-c++.cc28
-rw-r--r--tests/test-stdbool-c++2.cc24
-rw-r--r--tests/test-stddef-c++.cc28
-rw-r--r--tests/test-stddef-c++2.cc20
-rw-r--r--tests/test-stdint-c++.cc28
-rw-r--r--tests/test-stdint-c++2.cc24
-rw-r--r--tests/test-wchar-c++2.cc20
-rw-r--r--tests/test-wctype-h-c++2.cc20
43 files changed, 774 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index cb3ffc7e83..bbc40dd964 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,76 @@
+2019-12-05 Bruno Haible <bruno@clisp.org>
+
+ Add more C++ tests.
+
+ assert-h: Add C++ tests.
+ * tests/test-assert-h-c++.cc: New file.
+ * tests/test-assert-h-c++2.cc: New file.
+ * modules/assert-h-c++-tests: New file.
+ * modules/assert-h-tests: New file.
+
+ ctype: Add C++ tests.
+ * tests/test-ctype-c++.cc: New file.
+ * tests/test-ctype-c++2.cc: New file.
+ * modules/ctype-c++-tests: New file.
+ * modules/ctype-tests (Depends-on): Add ctype-c++-tests.
+
+ errno: Add C++ tests.
+ * tests/test-errno-c++.cc: New file.
+ * tests/test-errno-c++2.cc: New file.
+ * modules/errno-c++-tests: New file.
+ * modules/errno-tests (Depends-on): Add errno-c++-tests.
+
+ float: Add C++ tests.
+ * tests/test-float-c++.cc: New file.
+ * tests/test-float-c++2.cc: New file.
+ * modules/float-c++-tests: New file.
+ * modules/float-tests (Depends-on): Add float-c++-tests.
+
+ inttypes: Add more C++ tests.
+ * tests/test-inttypes-c++2.cc: New file.
+ * modules/inttypes-c++-tests (Files): Add it.
+ (Makefile.am): Compile it.
+
+ limits-h: Add C++ tests.
+ * tests/test-limits-h-c++.cc: New file.
+ * tests/test-limits-h-c++2.cc: New file.
+ * modules/limits-h-c++-tests: New file.
+ * modules/limits-h-tests (Depends-on): Add limits-h-c++-tests.
+
+ stdarg: Add C++ tests.
+ * tests/test-stdarg-c++.cc: New file.
+ * tests/test-stdarg-c++2.cc: New file.
+ * modules/stdarg-c++-tests: New file.
+ * modules/stdarg-tests: New file.
+
+ stdbool: Add C++ tests.
+ * tests/test-stdbool-c++.cc: New file.
+ * tests/test-stdbool-c++2.cc: New file.
+ * modules/stdbool-c++-tests: New file.
+ * modules/stdbool-tests (Depends-on): Add stdbool-c++-tests.
+
+ stddef: Add C++ tests.
+ * tests/test-stddef-c++.cc: New file.
+ * tests/test-stddef-c++2.cc: New file.
+ * modules/stddef-c++-tests: New file.
+ * modules/stddef-tests (Depends-on): Add stddef-c++-tests.
+
+ stdint: Add C++ tests.
+ * tests/test-stdint-c++.cc: New file.
+ * tests/test-stdint-c++2.cc: New file.
+ * modules/stdint-c++-tests: New file.
+ * modules/stdint-tests (Depends-on): Add stdint-c++-tests.
+
+ wchar: Add more C++ tests.
+ * tests/test-wchar-c++2.cc: New file.
+ * modules/wchar-c++-tests (Files): Add it.
+ (Makefile.am): Compile it.
+
+ wctype-h: Add more C++ tests.
+ * tests/test-wctype-h-c++2.cc: New file.
+ * modules/wctype-h-c++-tests (Files): Add it.
+ (Makefile.am): Compile it.
+
2019-12-04 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode with xlclang++ on AIX.
diff --git a/modules/assert-h-c++-tests b/modules/assert-h-c++-tests
new file mode 100644
index 0000000000..23691d0cad
--- /dev/null
+++ b/modules/assert-h-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-assert-h-c++.cc
+tests/test-assert-h-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-assert-h-c++
+check_PROGRAMS += test-assert-h-c++
+test_assert_h_c___SOURCES = test-assert-h-c++.cc test-assert-h-c++2.cc
+endif
diff --git a/modules/assert-h-tests b/modules/assert-h-tests
new file mode 100644
index 0000000000..19375f61c3
--- /dev/null
+++ b/modules/assert-h-tests
@@ -0,0 +1,7 @@
+Files:
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
diff --git a/modules/ctype-c++-tests b/modules/ctype-c++-tests
new file mode 100644
index 0000000000..9ba765909c
--- /dev/null
+++ b/modules/ctype-c++-tests
@@ -0,0 +1,19 @@
+Files:
+tests/test-ctype-c++.cc
+tests/test-ctype-c++2.cc
+tests/signature.h
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-ctype-c++
+check_PROGRAMS += test-ctype-c++
+test_ctype_c___SOURCES = test-ctype-c++.cc test-ctype-c++2.cc
+endif
diff --git a/modules/ctype-tests b/modules/ctype-tests
index 4b9f4af870..cae5067e4f 100644
--- a/modules/ctype-tests
+++ b/modules/ctype-tests
@@ -2,6 +2,7 @@ Files:
tests/test-ctype.c
Depends-on:
+ctype-c++-tests
configure.ac:
diff --git a/modules/errno-c++-tests b/modules/errno-c++-tests
new file mode 100644
index 0000000000..f4083bd1ba
--- /dev/null
+++ b/modules/errno-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-errno-c++.cc
+tests/test-errno-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-errno-c++
+check_PROGRAMS += test-errno-c++
+test_errno_c___SOURCES = test-errno-c++.cc test-errno-c++2.cc
+endif
diff --git a/modules/errno-tests b/modules/errno-tests
index 00ec12b892..71e732ce3e 100644
--- a/modules/errno-tests
+++ b/modules/errno-tests
@@ -2,6 +2,7 @@ Files:
tests/test-errno.c
Depends-on:
+errno-c++-tests
configure.ac:
diff --git a/modules/float-c++-tests b/modules/float-c++-tests
new file mode 100644
index 0000000000..7fdc7f5a17
--- /dev/null
+++ b/modules/float-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-float-c++.cc
+tests/test-float-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-float-c++
+check_PROGRAMS += test-float-c++
+test_float_c___SOURCES = test-float-c++.cc test-float-c++2.cc
+endif
diff --git a/modules/float-tests b/modules/float-tests
index 7d61f8e7fd..a68e0216dd 100644
--- a/modules/float-tests
+++ b/modules/float-tests
@@ -5,6 +5,7 @@ tests/macros.h
Depends-on:
fpieee
fpucw
+float-c++-tests
configure.ac:
diff --git a/modules/inttypes-c++-tests b/modules/inttypes-c++-tests
index 7f7e91871f..b28189f419 100644
--- a/modules/inttypes-c++-tests
+++ b/modules/inttypes-c++-tests
@@ -1,5 +1,6 @@
Files:
tests/test-inttypes-c++.cc
+tests/test-inttypes-c++2.cc
tests/signature.h
Status:
@@ -14,5 +15,5 @@ Makefile.am:
if ANSICXX
TESTS += test-inttypes-c++
check_PROGRAMS += test-inttypes-c++
-test_inttypes_c___SOURCES = test-inttypes-c++.cc
+test_inttypes_c___SOURCES = test-inttypes-c++.cc test-inttypes-c++2.cc
endif
diff --git a/modules/limits-h-c++-tests b/modules/limits-h-c++-tests
new file mode 100644
index 0000000000..e9763415aa
--- /dev/null
+++ b/modules/limits-h-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-limits-h-c++.cc
+tests/test-limits-h-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-limits-h-c++
+check_PROGRAMS += test-limits-h-c++
+test_limits_h_c___SOURCES = test-limits-h-c++.cc test-limits-h-c++2.cc
+endif
diff --git a/modules/limits-h-tests b/modules/limits-h-tests
index cda0de2225..7a70e5782b 100644
--- a/modules/limits-h-tests
+++ b/modules/limits-h-tests
@@ -4,6 +4,7 @@ tests/test-limits-h.c
Depends-on:
extensions
verify
+limits-h-c++-tests
configure.ac:
diff --git a/modules/stdarg-c++-tests b/modules/stdarg-c++-tests
new file mode 100644
index 0000000000..617738819d
--- /dev/null
+++ b/modules/stdarg-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-stdarg-c++.cc
+tests/test-stdarg-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-stdarg-c++
+check_PROGRAMS += test-stdarg-c++
+test_stdarg_c___SOURCES = test-stdarg-c++.cc test-stdarg-c++2.cc
+endif
diff --git a/modules/stdarg-tests b/modules/stdarg-tests
new file mode 100644
index 0000000000..19375f61c3
--- /dev/null
+++ b/modules/stdarg-tests
@@ -0,0 +1,7 @@
+Files:
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
diff --git a/modules/stdbool-c++-tests b/modules/stdbool-c++-tests
new file mode 100644
index 0000000000..4d44e8ef80
--- /dev/null
+++ b/modules/stdbool-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-stdbool-c++.cc
+tests/test-stdbool-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-stdbool-c++
+check_PROGRAMS += test-stdbool-c++
+test_stdbool_c___SOURCES = test-stdbool-c++.cc test-stdbool-c++2.cc
+endif
diff --git a/modules/stdbool-tests b/modules/stdbool-tests
index 6905dfbedc..0f875fbeed 100644
--- a/modules/stdbool-tests
+++ b/modules/stdbool-tests
@@ -2,6 +2,7 @@ Files:
tests/test-stdbool.c
Depends-on:
+stdbool-c++-tests
configure.ac:
diff --git a/modules/stddef-c++-tests b/modules/stddef-c++-tests
new file mode 100644
index 0000000000..c11a16f7fb
--- /dev/null
+++ b/modules/stddef-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-stddef-c++.cc
+tests/test-stddef-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-stddef-c++
+check_PROGRAMS += test-stddef-c++
+test_stddef_c___SOURCES = test-stddef-c++.cc test-stddef-c++2.cc
+endif
diff --git a/modules/stddef-tests b/modules/stddef-tests
index cef92fa6aa..bb71e110b7 100644
--- a/modules/stddef-tests
+++ b/modules/stddef-tests
@@ -4,6 +4,7 @@ tests/test-stddef.c
Depends-on:
stdalign
verify
+stddef-c++-tests
configure.ac:
diff --git a/modules/stdint-c++-tests b/modules/stdint-c++-tests
new file mode 100644
index 0000000000..c5ea03197c
--- /dev/null
+++ b/modules/stdint-c++-tests
@@ -0,0 +1,18 @@
+Files:
+tests/test-stdint-c++.cc
+tests/test-stdint-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-stdint-c++
+check_PROGRAMS += test-stdint-c++
+test_stdint_c___SOURCES = test-stdint-c++.cc test-stdint-c++2.cc
+endif
diff --git a/modules/stdint-tests b/modules/stdint-tests
index c21bfa186d..44d9cdec6e 100644
--- a/modules/stdint-tests
+++ b/modules/stdint-tests
@@ -8,6 +8,7 @@ extensions
verify
intprops
wchar
+stdint-c++-tests
configure.ac:
AC_REQUIRE([gt_TYPE_WCHAR_T])
diff --git a/modules/wchar-c++-tests b/modules/wchar-c++-tests
index cd898e2cbc..75ff6518a9 100644
--- a/modules/wchar-c++-tests
+++ b/modules/wchar-c++-tests
@@ -1,5 +1,6 @@
Files:
tests/test-wchar-c++.cc
+tests/test-wchar-c++2.cc
tests/signature.h
Status:
@@ -14,6 +15,6 @@ Makefile.am:
if ANSICXX
TESTS += test-wchar-c++
check_PROGRAMS += test-wchar-c++
-test_wchar_c___SOURCES = test-wchar-c++.cc
+test_wchar_c___SOURCES = test-wchar-c++.cc test-wchar-c++2.cc
test_wchar_c___LDADD = $(LDADD) $(LIBINTL) $(LIB_NANOSLEEP) $(LIB_EACCESS) $(LIBTHREAD)
endif
diff --git a/modules/wctype-h-c++-tests b/modules/wctype-h-c++-tests
index 2b22df4738..0f7db9c84a 100644
--- a/modules/wctype-h-c++-tests
+++ b/modules/wctype-h-c++-tests
@@ -1,5 +1,6 @@
Files:
tests/test-wctype-h-c++.cc
+tests/test-wctype-h-c++2.cc
tests/signature.h
Status:
@@ -14,6 +15,6 @@ Makefile.am:
if ANSICXX
TESTS += test-wctype-h-c++
check_PROGRAMS += test-wctype-h-c++
-test_wctype_h_c___SOURCES = test-wctype-h-c++.cc
+test_wctype_h_c___SOURCES = test-wctype-h-c++.cc test-wctype-h-c++2.cc
test_wctype_h_c___LDADD = $(LDADD) $(LIBINTL) $(LIB_NANOSLEEP) $(LIB_EACCESS)
endif
diff --git a/tests/test-assert-h-c++.cc b/tests/test-assert-h-c++.cc
new file mode 100644
index 0000000000..4e0a0d477f
--- /dev/null
+++ b/tests/test-assert-h-c++.cc
@@ -0,0 +1,28 @@
+/* Test of <assert.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <assert.h>
+
+
+int
+main ()
+{
+}
diff --git a/tests/test-assert-h-c++2.cc b/tests/test-assert-h-c++2.cc
new file mode 100644
index 0000000000..83089338b0
--- /dev/null
+++ b/tests/test-assert-h-c++2.cc
@@ -0,0 +1,20 @@
+/* Test of <assert.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <cassert>
diff --git a/tests/test-ctype-c++.cc b/tests/test-ctype-c++.cc
new file mode 100644
index 0000000000..5d94c4c836
--- /dev/null
+++ b/tests/test-ctype-c++.cc
@@ -0,0 +1,35 @@
+/* Test of <ctype.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <ctype.h>
+
+#include "signature.h"
+
+
+#if 0
+SIGNATURE_CHECK (GNULIB_NAMESPACE::isblank, int, (int));
+#endif
+
+
+int
+main ()
+{
+}
diff --git a/tests/test-ctype-c++2.cc b/tests/test-ctype-c++2.cc
new file mode 100644
index 0000000000..509261a023
--- /dev/null
+++ b/tests/test-ctype-c++2.cc
@@ -0,0 +1,20 @@
+/* Test of <ctype.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <cctype>
diff --git a/tests/test-errno-c++.cc b/tests/test-errno-c++.cc
new file mode 100644
index 0000000000..0a979f6ec8
--- /dev/null
+++ b/tests/test-errno-c++.cc
@@ -0,0 +1,28 @@
+/* Test of <errno.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <errno.h>
+
+
+int
+main ()
+{
+}
diff --git a/tests/test-errno-c++2.cc b/tests/test-errno-c++2.cc
new file mode 100644
index 0000000000..d67de7054a
--- /dev/null
+++ b/tests/test-errno-c++2.cc
@@ -0,0 +1,20 @@
+/* Test of <errno.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <cerrno>
diff --git a/tests/test-float-c++.cc b/tests/test-float-c++.cc
new file mode 100644
index 0000000000..d199f12a2f
--- /dev/null
+++ b/tests/test-float-c++.cc
@@ -0,0 +1,28 @@
+/* Test of <float.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <float.h>
+
+
+int
+main ()
+{
+}
diff --git a/tests/test-float-c++2.cc b/tests/test-float-c++2.cc
new file mode 100644
index 0000000000..489dfb1848
--- /dev/null
+++ b/tests/test-float-c++2.cc
@@ -0,0 +1,20 @@
+/* Test of <float.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <cfloat>
diff --git a/tests/test-inttypes-c++2.cc b/tests/test-inttypes-c++2.cc
new file mode 100644
index 0000000000..a05e1d0a13
--- /dev/null
+++ b/tests/test-inttypes-c++2.cc
@@ -0,0 +1,24 @@
+/* Test of <inttypes.h> substitute in C++ mode.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#if __cplusplus >= 201103
+
+# include <cinttypes>
+