Author: pschweitzer
Date: Sat Nov 19 15:05:26 2011
New Revision: 54437
URL:
http://svn.reactos.org/svn/reactos?rev=54437&view=rev
Log:
[MSVCRT_APITEST]
Add more tests
Modified:
trunk/rostests/apitests/msvcrt/ieee.c
Modified: trunk/rostests/apitests/msvcrt/ieee.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/msvcrt/ieee.c?re…
==============================================================================
--- trunk/rostests/apitests/msvcrt/ieee.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/msvcrt/ieee.c [iso-8859-1] Sat Nov 19 15:05:26 2011
@@ -199,9 +199,146 @@
ok(_isnan(tested.d) == TRUE, "_isnan = FALSE\n");
}
+void test_scalb(void)
+{
+ ieee_double tested;
+ ieee_double expected;
+ ieee_double result;
+
+ expected.l = 0;
+
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFFFFFFFFFFFFFFFLL;
+ expected.l = 0xFFFFFFFFFFFFFFFFLL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFF8000000000001LL;
+ expected.l = 0xFFF8000000000001LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFF8000000000000LL;
+ expected.l = 0xFFF8000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFF7FFFFFFFFFFFFLL;
+ expected.l = 0xFFFFFFFFFFFFFFFFLL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFF0000000000001LL;
+ expected.l = 0xFFF8000000000001LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFF0000000000000LL;
+ expected.l = 0xFFF0000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0xFFEFFFFFFFFFFFFFLL;
+ expected.l = 0xFFF0000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == ERANGE, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x8010000000000000LL;
+ expected.l = 0x8040000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x800FFFFFFFFFFFFFLL;
+ expected.l = 0x803FFFFFFFFFFFFELL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x8000000000000001LL;
+ expected.l = 0x8000000000000008LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x8000000000000000LL;
+ expected.l = 0x8000000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x0000000000000000LL;
+ expected.l = 0x0000000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x0000000000000001LL;
+ expected.l = 0x0000000000000008LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x000FFFFFFFFFFFFFLL;
+ expected.l = 0x003FFFFFFFFFFFFELL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x0010000000000000LL;
+ expected.l = 0x0040000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FEFFFFFFFFFFFFFLL;
+ expected.l = 0x7FF0000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == ERANGE, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FF0000000000000LL;
+ expected.l = 0x7FF0000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == 0xDEADBEEF, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FF0000000000001LL;
+ expected.l = 0x7FF8000000000001LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FF7FFFFFFFFFFFFLL;
+ expected.l = 0x7FFFFFFFFFFFFFFFLL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FF8000000000000LL;
+ expected.l = 0x7FF8000000000000LL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+ errno = 0xDEADBEEF;
+ tested.l = 0x7FFFFFFFFFFFFFFFLL;
+ expected.l = 0x7FFFFFFFFFFFFFFFLL;
+ result.d = _scalb(tested.d, 3);
+ ok(result.l == expected.l, "_scalb returned: %I64x\n", result.l);
+ ok(errno == EDOM, "errno: %d\n", errno);
+}
+
START_TEST(ieee)
{
test_finite();
test_fpclass();
test_isnan();
-}
+ test_scalb();
+}