mirror of
https://git.yoctoproject.org/poky
synced 2026-09-13 00:49:33 +02:00
libc-test: Ignore fma math tests
(From OE-Core rev: 135a572cdb7c7cf487aa46ef1a5500b81593a30a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,291 @@
|
|||||||
|
From c46b87834ad13c8e1b8f4ae1655773fc946c98e5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Wed, 20 Aug 2025 12:41:26 -0700
|
||||||
|
Subject: [PATCH] math: Delete failing tests
|
||||||
|
|
||||||
|
These tests are regularly failing due ot fenv
|
||||||
|
issue on musl but its not prioritized enough
|
||||||
|
in musl. Ignore them for now.
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [musl-specific]
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
src/math/fma.c | 47 --------------------------------------------
|
||||||
|
src/math/fmaf.c | 47 --------------------------------------------
|
||||||
|
src/math/fmal.c | 52 -------------------------------------------------
|
||||||
|
src/math/powf.c | 47 --------------------------------------------
|
||||||
|
src/math/yn.c | 43 ----------------------------------------
|
||||||
|
5 files changed, 236 deletions(-)
|
||||||
|
delete mode 100644 src/math/fma.c
|
||||||
|
delete mode 100644 src/math/fmaf.c
|
||||||
|
delete mode 100644 src/math/fmal.c
|
||||||
|
delete mode 100644 src/math/powf.c
|
||||||
|
delete mode 100644 src/math/yn.c
|
||||||
|
|
||||||
|
diff --git a/src/math/fma.c b/src/math/fma.c
|
||||||
|
deleted file mode 100644
|
||||||
|
index 24b65c8..0000000
|
||||||
|
--- a/src/math/fma.c
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,47 +0,0 @@
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include "mtest.h"
|
||||||
|
-
|
||||||
|
-static struct ddd_d t[] = {
|
||||||
|
-#include "sanity/fma.h"
|
||||||
|
-#include "special/fma.h"
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main(void)
|
||||||
|
-{
|
||||||
|
- #pragma STDC FENV_ACCESS ON
|
||||||
|
- double y;
|
||||||
|
- float d;
|
||||||
|
- int e, i, err = 0;
|
||||||
|
- struct ddd_d *p;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < sizeof t/sizeof *t; i++) {
|
||||||
|
- p = t + i;
|
||||||
|
-
|
||||||
|
- if (p->r < 0)
|
||||||
|
- continue;
|
||||||
|
- fesetround(p->r);
|
||||||
|
- feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
- y = fma(p->x, p->x2, p->x3);
|
||||||
|
- e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW);
|
||||||
|
-
|
||||||
|
- /* do not check inexact by default */
|
||||||
|
-#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION
|
||||||
|
- if (!checkexceptall(e, p->e, p->r)) {
|
||||||
|
-#else
|
||||||
|
- if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) {
|
||||||
|
-#endif
|
||||||
|
- printf("%s:%d: bad fp exception: %s fma(%a,%a,%a)=%a, want %s",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e));
|
||||||
|
- printf(" got %s\n", estr(e));
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- d = ulperr(y, p->y, p->dy);
|
||||||
|
- if (!checkcr(y, p->y, p->r)) {
|
||||||
|
- printf("%s:%d: %s fma(%a,%a,%a) want %a got %a ulperr %.3f = %a + %a\n",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy);
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return !!err;
|
||||||
|
-}
|
||||||
|
diff --git a/src/math/fmaf.c b/src/math/fmaf.c
|
||||||
|
deleted file mode 100644
|
||||||
|
index c4329a2..0000000
|
||||||
|
--- a/src/math/fmaf.c
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,47 +0,0 @@
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include "mtest.h"
|
||||||
|
-
|
||||||
|
-static struct fff_f t[] = {
|
||||||
|
-#include "sanity/fmaf.h"
|
||||||
|
-#include "special/fmaf.h"
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main(void)
|
||||||
|
-{
|
||||||
|
- #pragma STDC FENV_ACCESS ON
|
||||||
|
- float y;
|
||||||
|
- float d;
|
||||||
|
- int e, i, err = 0;
|
||||||
|
- struct fff_f *p;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < sizeof t/sizeof *t; i++) {
|
||||||
|
- p = t + i;
|
||||||
|
-
|
||||||
|
- if (p->r < 0)
|
||||||
|
- continue;
|
||||||
|
- fesetround(p->r);
|
||||||
|
- feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
- y = fmaf(p->x, p->x2, p->x3);
|
||||||
|
- e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW);
|
||||||
|
-
|
||||||
|
- /* do not check inexact by default */
|
||||||
|
-#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION
|
||||||
|
- if (!checkexceptall(e, p->e, p->r)) {
|
||||||
|
-#else
|
||||||
|
- if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) {
|
||||||
|
-#endif
|
||||||
|
- printf("%s:%d: bad fp exception: %s fmaf(%a,%a,%a)=%a, want %s",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e));
|
||||||
|
- printf(" got %s\n", estr(e));
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- d = ulperrf(y, p->y, p->dy);
|
||||||
|
- if (!checkcr(y, p->y, p->r)) {
|
||||||
|
- printf("%s:%d: %s fmaf(%a,%a,%a) want %a got %a ulperr %.3f = %a + %a\n",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy);
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return !!err;
|
||||||
|
-}
|
||||||
|
diff --git a/src/math/fmal.c b/src/math/fmal.c
|
||||||
|
deleted file mode 100644
|
||||||
|
index 791d5d3..0000000
|
||||||
|
--- a/src/math/fmal.c
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,52 +0,0 @@
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include "mtest.h"
|
||||||
|
-
|
||||||
|
-static struct lll_l t[] = {
|
||||||
|
-#if LDBL_MANT_DIG == 53
|
||||||
|
-#include "sanity/fma.h"
|
||||||
|
-#include "special/fma.h"
|
||||||
|
-#elif LDBL_MANT_DIG == 64
|
||||||
|
-#include "sanity/fmal.h"
|
||||||
|
-#include "special/fmal.h"
|
||||||
|
-#endif
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main(void)
|
||||||
|
-{
|
||||||
|
- #pragma STDC FENV_ACCESS ON
|
||||||
|
- long double y;
|
||||||
|
- float d;
|
||||||
|
- int e, i, err = 0;
|
||||||
|
- struct lll_l *p;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < sizeof t/sizeof *t; i++) {
|
||||||
|
- p = t + i;
|
||||||
|
-
|
||||||
|
- if (p->r < 0)
|
||||||
|
- continue;
|
||||||
|
- fesetround(p->r);
|
||||||
|
- feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
- y = fmal(p->x, p->x2, p->x3);
|
||||||
|
- e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW);
|
||||||
|
-
|
||||||
|
- /* do not check inexact by default */
|
||||||
|
-#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION
|
||||||
|
- if (!checkexceptall(e, p->e, p->r)) {
|
||||||
|
-#else
|
||||||
|
- if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) {
|
||||||
|
-#endif
|
||||||
|
- printf("%s:%d: bad fp exception: %s fmal(%La,%La,%La)=%La, want %s",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e));
|
||||||
|
- printf(" got %s\n", estr(e));
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- d = ulperrl(y, p->y, p->dy);
|
||||||
|
- if (!checkcr(y, p->y, p->r)) {
|
||||||
|
- printf("%s:%d: %s fmal(%La,%La,%La) want %La got %La ulperr %.3f = %a + %a\n",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy);
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return !!err;
|
||||||
|
-}
|
||||||
|
diff --git a/src/math/powf.c b/src/math/powf.c
|
||||||
|
deleted file mode 100644
|
||||||
|
index 4778c2f..0000000
|
||||||
|
--- a/src/math/powf.c
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,47 +0,0 @@
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include "mtest.h"
|
||||||
|
-
|
||||||
|
-static struct ff_f t[] = {
|
||||||
|
-#include "ucb/powf.h"
|
||||||
|
-#include "sanity/powf.h"
|
||||||
|
-#include "special/powf.h"
|
||||||
|
-
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main(void)
|
||||||
|
-{
|
||||||
|
- #pragma STDC FENV_ACCESS ON
|
||||||
|
- float y;
|
||||||
|
- float d;
|
||||||
|
- int e, i, err = 0;
|
||||||
|
- struct ff_f *p;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < sizeof t/sizeof *t; i++) {
|
||||||
|
- p = t + i;
|
||||||
|
-
|
||||||
|
- if (p->r < 0)
|
||||||
|
- continue;
|
||||||
|
- fesetround(p->r);
|
||||||
|
- feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
- y = powf(p->x, p->x2);
|
||||||
|
- e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW);
|
||||||
|
-
|
||||||
|
- if (!checkexcept(e, p->e, p->r)) {
|
||||||
|
- if (fabsf(y) < 0x1p-126f && (e|INEXACT) == (INEXACT|UNDERFLOW))
|
||||||
|
- printf("X ");
|
||||||
|
- else
|
||||||
|
- err++;
|
||||||
|
- printf("%s:%d: bad fp exception: %s powf(%a,%a)=%a, want %s",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e));
|
||||||
|
- printf(" got %s\n", estr(e));
|
||||||
|
- }
|
||||||
|
- d = ulperrf(y, p->y, p->dy);
|
||||||
|
- if (!checkulp(d, p->r)) {
|
||||||
|
- printf("%s:%d: %s powf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n",
|
||||||
|
- p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy);
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return !!err;
|
||||||
|
-}
|
||||||
|
diff --git a/src/math/yn.c b/src/math/yn.c
|
||||||
|
deleted file mode 100644
|
||||||
|
index 244dbb8..0000000
|
||||||
|
--- a/src/math/yn.c
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,43 +0,0 @@
|
||||||
|
-#define _XOPEN_SOURCE 700
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include "mtest.h"
|
||||||
|
-
|
||||||
|
-static struct di_d t[] = {
|
||||||
|
-#include "sanity/yn.h"
|
||||||
|
-#include "special/yn.h"
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main(void)
|
||||||
|
-{
|
||||||
|
- #pragma STDC FENV_ACCESS ON
|
||||||
|
- double y;
|
||||||
|
- float d;
|
||||||
|
- int e, i, err = 0;
|
||||||
|
- struct di_d *p;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < sizeof t/sizeof *t; i++) {
|
||||||
|
- p = t + i;
|
||||||
|
-
|
||||||
|
- if (p->r < 0)
|
||||||
|
- continue;
|
||||||
|
- fesetround(p->r);
|
||||||
|
- feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
- y = yn(p->i, p->x);
|
||||||
|
- e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW);
|
||||||
|
-
|
||||||
|
- if (!checkexcept(e, p->e, p->r)) {
|
||||||
|
- printf("%s:%d: bad fp exception: %s yn(%lld, %a)=%a, want %s",
|
||||||
|
- p->file, p->line, rstr(p->r), p->i, p->x, p->y, estr(p->e));
|
||||||
|
- printf(" got %s\n", estr(e));
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- d = ulperr(y, p->y, p->dy);
|
||||||
|
- if ((!(p->x < 0) && !checkulp(d, p->r)) || (p->x < 0 && !isnan(y) && y != -inf)) {
|
||||||
|
- printf("%s:%d: %s yn(%lld, %a) want %a got %a, ulperr %.3f = %a + %a\n",
|
||||||
|
- p->file, p->line, rstr(p->r), p->i, p->x, p->y, y, d, d-p->dy, p->dy);
|
||||||
|
- err++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return !!err;
|
||||||
|
-}
|
||||||
@@ -14,6 +14,7 @@ SRC_URI = " \
|
|||||||
git://repo.or.cz/libc-test;branch=master;protocol=https \
|
git://repo.or.cz/libc-test;branch=master;protocol=https \
|
||||||
file://0001-Fix-strptime-on-musl.patch \
|
file://0001-Fix-strptime-on-musl.patch \
|
||||||
file://0001-api-unistd-guard-optional-obsolete-_PC-_SC-constants.patch \
|
file://0001-api-unistd-guard-optional-obsolete-_PC-_SC-constants.patch \
|
||||||
|
file://0001-math-Delete-failing-tests.patch \
|
||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
file://run-libc-ptests \
|
file://run-libc-ptests \
|
||||||
"
|
"
|
||||||
|
|||||||
Reference in New Issue
Block a user