https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c52763f7de67d844e2e7002e8c5bc1ab19d48e16

commit c52763f7de67d844e2e7002e8c5bc1ab19d48e16
Author:     Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Thu Sep 12 13:01:26 2024 +0300
Commit:     Timo Kreuzer <timo.kreu...@reactos.org>
CommitDate: Sun Sep 15 19:28:07 2024 +0300

    [MSVCRT_APITEST] Fix ieee test on x64
---
 modules/rostests/apitests/msvcrt/ieee.c | 42 ++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/modules/rostests/apitests/msvcrt/ieee.c 
b/modules/rostests/apitests/msvcrt/ieee.c
index 5ecd8b1a973..426d8db6416 100644
--- a/modules/rostests/apitests/msvcrt/ieee.c
+++ b/modules/rostests/apitests/msvcrt/ieee.c
@@ -91,14 +91,22 @@ void test_fpclass(void)
      * on w2k3, it's Quiet NAN
      * ok(class == _FPCLASS_SNAN, "class = %d\n", class);
      */
+#ifdef _M_AMD64
+    ok(class == _FPCLASS_SNAN, "class = %d\n", class);
+#else
     ok(class == _FPCLASS_QNAN, "class = %d\n", class);
+#endif
     tested.l = 0xFFF0000000000001LL;
     class = _fpclass(tested.d);
     /* According to IEEE, it should be Signaling NaN, but
      * on w2k3, it's Quiet NAN
      * ok(class == _FPCLASS_SNAN, "class = %d\n", class);
      */
+#ifdef _M_AMD64
+    ok(class == _FPCLASS_SNAN, "class = %d\n", class);
+#else
     ok(class == _FPCLASS_QNAN, "class = %d\n", class);
+#endif
     tested.l = 0xFFF0000000000000LL;
     class = _fpclass(tested.d);
     ok(class == _FPCLASS_NINF, "class = %d\n", class);
@@ -141,14 +149,22 @@ void test_fpclass(void)
      * on w2k3, it's Quiet NAN
      * ok(class == _FPCLASS_SNAN, "class = %d\n", class);
      */
+#ifdef _M_AMD64
+    ok(class == _FPCLASS_SNAN, "class = %d\n", class);
+#else
     ok(class == _FPCLASS_QNAN, "class = %d\n", class);
+#endif
     tested.l = 0x7FF7FFFFFFFFFFFFLL;
     class = _fpclass(tested.d);
     /* According to IEEE, it should be Signaling NaN, but
      * on w2k3, it's Quiet NAN
      * ok(class == _FPCLASS_SNAN, "class = %d\n", class);
      */
+#ifdef _M_AMD64
+    ok(class == _FPCLASS_SNAN, "class = %d\n", class);
+#else
     ok(class == _FPCLASS_QNAN, "class = %d\n", class);
+#endif
     tested.l = 0x7FF8000000000000LL;
     class = _fpclass(tested.d);
     ok(class == _FPCLASS_QNAN, "class = %d\n", class);
@@ -258,7 +274,11 @@ void test_j0(void)
     ok(errno == EDOM, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0xFFEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0x8000000000000000LL;
+#else
     expected.l = 0x1FE7206E1D6FDCFALL;
+#endif
     result.d =  _j0(tested.d);
     ok(result.l == expected.l, "_j0 returned: %I64x\n", result.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
@@ -312,7 +332,11 @@ void test_j0(void)
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0x7FEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0x8000000000000000LL;
+#else
     expected.l = 0x1FE7206E1D6FDCFALL;
+#endif
     result.d =  _j0(tested.d);
     ok(result.l == expected.l, "_j0 returned: %I64x\n", result.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
@@ -402,7 +426,11 @@ void test_j1(void)
     ok(errno == EDOM, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0xFFEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0;
+#else
     expected.l = 0x9FE7206E1D6FDCFALL;
+#endif
     result.d =  _j1(tested.d);
     ok(result.l == expected.l, "_j1 returned: %I64x\n", result.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
@@ -456,9 +484,13 @@ void test_j1(void)
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0x7FEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0x8000000000000000LL;
+#else
     expected.l = 0x1FE7206E1D6FDCFALL;
+#endif
     result.d =  _j1(tested.d);
-    ok(result.l == expected.l, "_j1 returned: %I64x\n", result.l);
+    ok(result.l == expected.l, "_j1 returned: %I64x, expected %I64x\n", 
result.l, expected.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0x7FF0000000000000LL;
@@ -744,7 +776,11 @@ void test_y0(void)
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0x7FEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0;
+#else
     expected.l = 0x9FD5A36F8428F58BLL;
+#endif
     result.d =  _y0(tested.d);
     ok(result.l == expected.l, "_y0 returned: %I64x\n", result.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
@@ -888,7 +924,11 @@ void test_y1(void)
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
     errno = 0xDEADBEEF;
     tested.l = 0x7FEFFFFFFFFFFFFFLL;
+#ifdef _M_AMD64
+    expected.l = 0;
+#else
     expected.l = 0x9FD5A36F8428F58BLL;
+#endif
     result.d =  _y1(tested.d);
     ok(result.l == expected.l, "_y1 returned: %I64x\n", result.l);
     ok(errno == 0xDEADBEEF, "errno: %d\n", errno);

Reply via email to