[Git][NTPsec/ntpsec][master] tests/ieee754io: add tests for normal and meinberg byte order.

Gary E. Miller gitlab at mg.gitlab.com
Wed Apr 5 00:18:07 UTC 2017


Gary E. Miller pushed to branch master at NTPsec / ntpsec


Commits:
521c7270 by Gary E. Miller at 2017-04-04T17:15:57-07:00
tests/ieee754io: add tests for normal and meinberg byte order.

libparse/ieee754io should be basically tested now.

- - - - -


1 changed file:

- tests/libparse/ieee754io.c


Changes:

=====================================
tests/libparse/ieee754io.c
=====================================
--- a/tests/libparse/ieee754io.c
+++ b/tests/libparse/ieee754io.c
@@ -23,7 +23,7 @@ TEST_TEAR_DOWN(ieee754io) {}
 
 static offsets_t native_off = { 0, 1, 2, 3, 4, 5, 6, 7 };
 /* byte order for meinberg doubles */
-// static offsets_t mbg_double = { 1, 0, 3, 2, 5, 4, 7, 6 };
+static offsets_t mbg_double = { 1, 0, 3, 2, 5, 4, 7, 6 };
 
 
 /*
@@ -104,9 +104,9 @@ TEST(ieee754io, test_nan32) {
 TEST(ieee754io, test_max32) {
         int ret;
         /* not enough precision in a float to get max l_fp */
-        unsigned char buf[4] = { 0x7f, 127, 255, 255};
+        unsigned char buf[4] = { 127, 127, 255, 255};
         /* not enough precision in a float to get negative max l_fp */
-        unsigned char buf_n[4] = { 0xff, 127, 255, 255};
+        unsigned char buf_n[4] = { 255, 127, 255, 255};
         unsigned char *bp = &buf[0];
         l_fp fp;
 
@@ -124,6 +124,29 @@ TEST(ieee754io, test_max32) {
         TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xFFFFFFFF00000100UL, fp );
 }
 
+TEST(ieee754io, test_order32) {
+        int ret;
+        /* not enough precision in a double to get max l_fp */
+        unsigned char buf[4] = { 255, 127, 1, 2};
+        /* not enough precision in a double to get negative max l_fp */
+        unsigned char buf_n[4] = { 127, 255, 2, 1};
+        unsigned char *bp = &buf[0];
+        l_fp fp;
+
+        /* normal linear order */
+        ret = fetch_ieee754( &bp, IEEE_SINGLE, &fp, native_off);
+
+        TEST_ASSERT( IEEE_OK == ret);
+        TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xFFFFFFFF00FEFE00UL, fp );
+
+        /* meinberg order */
+        bp = &buf_n[0];
+        ret = fetch_ieee754( &bp, IEEE_SINGLE, &fp, mbg_double);
+
+        TEST_ASSERT( IEEE_OK == ret);
+        TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xFFFFFFFF00FEFE00UL, fp );
+}
+
 
 TEST(ieee754io, test_zero64) {
         int ret;
@@ -237,16 +260,41 @@ TEST(ieee754io, test_max64) {
         TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xFFFFFFFFFFFFF000UL, fp );
 }
 
+TEST(ieee754io, test_order64) {
+        int ret;
+        /* not enough precision in a double to get max l_fp */
+        unsigned char buf[8] = { 65, 239, 1, 2, 3, 4, 5, 6 };
+        /* not enough precision in a double to get negative max l_fp */
+        unsigned char buf_n[8] = { 239, 65, 2, 1, 4, 3, 6, 5 };
+        unsigned char *bp = &buf[0];
+        l_fp fp;
+
+        /* normal linear order */
+        ret = fetch_ieee754( &bp, IEEE_DOUBLE, &fp, native_off);
+
+        TEST_ASSERT( IEEE_OK == ret);
+        TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xF808101820283000UL, fp );
+
+        /* meinberg order */
+        bp = &buf_n[0];
+        ret = fetch_ieee754( &bp, IEEE_DOUBLE, &fp, mbg_double);
+
+        TEST_ASSERT( IEEE_OK == ret);
+        TEST_ASSERT_EQUAL_UINT64( (unsigned long)0xF808101820283000UL, fp );
+}
+
 TEST_GROUP_RUNNER(ieee754io) {
         RUN_TEST_CASE(ieee754io, test_zero32);
         RUN_TEST_CASE(ieee754io, test_one32);
         RUN_TEST_CASE(ieee754io, test_negone32);
         RUN_TEST_CASE(ieee754io, test_nan32);
         RUN_TEST_CASE(ieee754io, test_max32);
+        RUN_TEST_CASE(ieee754io, test_order32);
 
         RUN_TEST_CASE(ieee754io, test_zero64);
         RUN_TEST_CASE(ieee754io, test_one64);
         RUN_TEST_CASE(ieee754io, test_negone64);
         RUN_TEST_CASE(ieee754io, test_nan64);
         RUN_TEST_CASE(ieee754io, test_max64);
+        RUN_TEST_CASE(ieee754io, test_order64);
 }



View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/521c727023c67a28d21e251971e7d7dfbe320556
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/vc/attachments/20170405/f69fc6d9/attachment.html>


More information about the vc mailing list