aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Makefile14
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c49
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c36
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>