diff options
Diffstat (limited to 'sysdeps')
7 files changed, 103 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile index c8a4d084dc..b54eb04f22 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile @@ -6,6 +6,14 @@ ldbl-extra-routines += fwscanf \ vwscanf endif +ifeq ($(subdir),wcsmbs) +tests-internal += test-wcstold-ibm128 test-wcstold-ieee128 +CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi +CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi + +$(objpfx)test-wcstold-ieee128: gnulib-tests += $(f128-loader-link) +endif + ifeq ($(subdir),stdio-common) ldbl-extra-routines += printf_size \ asprintf \ @@ -230,6 +238,12 @@ CFLAGS-test-strfmon-ibm128.c += -mabi=ibmlongdouble -Wno-psabi CFLAGS-test-strfmon-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi $(objpfx)tst-strfmon-ibm128.out: $(gen-locales) $(objpfx)tst-strfmon-ieee128.out: $(gen-locales) + +tests-internal += test-strfrom-ibm128 test-strfrom-ieee128 +CFLAGS-test-strfrom-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi +CFLAGS-test-strfrom-ibm128.c += -mabi=ibmlongdouble -Wno-psabi + +$(objpfx)test-strfrom-ieee128: gnulib-tests += $(f128-loader-link) endif # Add IEEE binary128 files as make targets. diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c new file mode 100644 index 0000000000..93887706b9 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c @@ -0,0 +1 @@ +#include <test-strfrom-ldbl-compat.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c new file mode 100644 index 0000000000..93887706b9 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c @@ -0,0 +1 @@ +#include <test-strfrom-ldbl-compat.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c new file mode 100644 index 0000000000..f19a2cbacc --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c @@ -0,0 +1,49 @@ +/* Test for the long double variants of strfroml and strtold. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <stdlib.h> + +#include <support/check.h> + +static int +do_test (void) +{ + int written; + char buffer[64]; + char *bufptr = buffer; + const char *expected = "-1.0000000000"; + long double read; + + /* Write to the buffer. */ + written = strfroml (bufptr, 64, "%.10f", (long double) -1); + if (written < 0) + support_record_failure (); + + /* Compare against the expected output. */ + TEST_COMPARE_STRING (expected, buffer); + + /* Read from the buffer. */ + read = strtold (expected, NULL); + + if (read != -1.0L) + support_record_failure (); + + return 0; +} + +#include <support/test-driver.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c new file mode 100644 index 0000000000..4d60692eeb --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c @@ -0,0 +1 @@ +#include <test-wcstold-ldbl-compat.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c new file mode 100644 index 0000000000..4d60692eeb --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c @@ -0,0 +1 @@ +#include <test-wcstold-ldbl-compat.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c new file mode 100644 index 0000000000..8abe4e51f8 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c @@ -0,0 +1,36 @@ +/* Test for the long double variant of wcstold. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <wchar.h> + +#include <support/check.h> + +static int +do_test (void) +{ + const wchar_t *input = L"-1.0000000000"; + long double read; + + read = wcstold (input, NULL); + if (read != -1.0L) + support_record_failure (); + + return 0; +} + +#include <support/test-driver.c> |