This patch completes the 'fenv' tests, by adding a C++ test module, with the usual idioms (like for the other header files).
2023-11-05 Bruno Haible <br...@clisp.org> fenv: Add C++ tests. * tests/test-fenv-c++.cc: New file. * modules/fenv-c++-tests: New file. * modules/fenv-tests (Depends-on): Add it. diff --git a/modules/fenv-c++-tests b/modules/fenv-c++-tests new file mode 100644 index 0000000000..a485726088 --- /dev/null +++ b/modules/fenv-c++-tests @@ -0,0 +1,19 @@ +Files: +tests/test-fenv-c++.cc +tests/signature.h + +Status: +c++-test + +Depends-on: +ansi-c++-opt + +configure.ac: + +Makefile.am: +if ANSICXX +TESTS += test-fenv-c++ +check_PROGRAMS += test-fenv-c++ +test_fenv_c___SOURCES = test-fenv-c++.cc +test_fenv_c___LDADD = $(LDADD) $(FENV_ENVIRONMENT_LIBM) $(FENV_ROUNDING_LIBM) $(FENV_EXCEPTIONS_TRACKING_LIBM) $(FENV_EXCEPTIONS_TRAPPING_LIBM) +endif diff --git a/modules/fenv-tests b/modules/fenv-tests index ec9048e202..c7f96c040a 100644 --- a/modules/fenv-tests +++ b/modules/fenv-tests @@ -3,6 +3,7 @@ tests/test-fenv.c Depends-on: verify +fenv-c++-tests configure.ac: diff --git a/tests/test-fenv-c++.cc b/tests/test-fenv-c++.cc new file mode 100644 index 0000000000..aa4f05d0ce --- /dev/null +++ b/tests/test-fenv-c++.cc @@ -0,0 +1,95 @@ +/* Test of <fenv.h> substitute in C++ mode. + Copyright (C) 2023 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 <br...@clisp.org>, 2010. */ + +#define GNULIB_NAMESPACE gnulib +#include <config.h> + +#include <fenv.h> + +#include "signature.h" + + +#if GNULIB_TEST_FEGETENV +SIGNATURE_CHECK (GNULIB_NAMESPACE::fegetenv, int, (fenv_t *)); +#endif + +#if GNULIB_TEST_FESETENV +SIGNATURE_CHECK (GNULIB_NAMESPACE::fesetenv, int, (fenv_t const *)); +#endif + +#if GNULIB_TEST_FEUPDATEENV +SIGNATURE_CHECK (GNULIB_NAMESPACE::feupdateenv, int, (fenv_t const *)); +#endif + +#if GNULIB_TEST_FEHOLDEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::feholdexcept, int, (fenv_t *)); +#endif + +#if GNULIB_TEST_FEGETROUND +SIGNATURE_CHECK (GNULIB_NAMESPACE::fegetround, int, (void)); +#endif + +#if GNULIB_TEST_FESETROUND +SIGNATURE_CHECK (GNULIB_NAMESPACE::fesetround, int, (int)); +#endif + +#if GNULIB_TEST_FECLEAREXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::feclearexcept, int, (int)); +#endif + +#if GNULIB_TEST_FERAISEEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::feraiseexcept, int, (int)); +#endif + +#if GNULIB_TEST_FETESTEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::fetestexcept, int, (int)); +#endif + +#if GNULIB_TEST_FESETEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::fesetexcept, int, (int)); +#endif + +#if GNULIB_TEST_FEENABLEEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::feenableexcept, int, (int)); +#endif + +#if GNULIB_TEST_FEDISABLEEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::fedisableexcept, int, (int)); +#endif + +#if GNULIB_TEST_FEGETEXCEPT +SIGNATURE_CHECK (GNULIB_NAMESPACE::fegetexcept, int, (void)); +#endif + +#if GNULIB_TEST_FEGETEXCEPTFLAG +SIGNATURE_CHECK (GNULIB_NAMESPACE::fegetexceptflag, int, (fexcept_t *, int)); +#endif + +#if GNULIB_TEST_FESETEXCEPTFLAG +SIGNATURE_CHECK (GNULIB_NAMESPACE::fesetexceptflag, int, (fexcept_t const *, int)); +#endif + +#if GNULIB_TEST_FETESTEXCEPTFLAG +SIGNATURE_CHECK (GNULIB_NAMESPACE::fetestexceptflag, int, (fexcept_t const *, int)); +#endif + + +int +main () +{ +}