]> Savannah Git Hosting - gnulib.git/commitdiff
byteswap tests: Strengthen tests.
authorCollin Funk <collin.funk1@gmail.com>
Fri, 17 May 2024 03:49:56 +0000 (20:49 -0700)
committerCollin Funk <collin.funk1@gmail.com>
Fri, 17 May 2024 03:49:56 +0000 (20:49 -0700)
* modules/byteswap-tests (Depends-on): Add stdint.
* tests/test-byteswap.c (test_bswap_constant, test_bswap_eval_once)
(test_bswap_double): New functions.
(main): Use them.

ChangeLog
modules/byteswap-tests
tests/test-byteswap.c

index ddfe701dd408d1b81845346f305fa002788fde16..6436ddfb815555ab1bad86038efb749ed45e539b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2024-05-16  Collin Funk  <collin.funk1@gmail.com>
+
+       byteswap tests: Strengthen tests.
+       * modules/byteswap-tests (Depends-on): Add stdint.
+       * tests/test-byteswap.c (test_bswap_constant, test_bswap_eval_once)
+       (test_bswap_double): New functions.
+       (main): Use them.
+
 2024-05-16  Collin Funk  <collin.funk1@gmail.com>
 
        byteswap: Use inline functions instead of macros.
index be7b65947e754a9b3e28404316535e6c739b5db7..64baf0e404504be8216e98166b6ee6e47ba9e9a7 100644 (file)
@@ -3,6 +3,7 @@ tests/test-byteswap.c
 tests/macros.h
 
 Depends-on:
+stdint
 
 configure.ac:
 
index 85f7fd419378c60c2aabc4c8d1e227b048500b66..60b3ea31e265b298a4c861698547715a65842347 100644 (file)
 #include <config.h>
 
 #include <byteswap.h>
+#include <stdint.h>
 
 #include "macros.h"
 
+/* Test bswap functions with constant values.  */
+static void
+test_bswap_constant (void)
+{
+  ASSERT (bswap_16 (UINT16_C (0x1234)) == UINT16_C (0x3412));
+  ASSERT (bswap_32 (UINT32_C (0x12345678)) == UINT32_C (0x78563412));
+  ASSERT (bswap_64 (UINT64_C (0x1234567890ABCDEF))
+          == UINT64_C (0xEFCDAB9078563412));
+}
+
+/* Test that the bswap functions evaluate their arguments once.  */
+static void
+test_bswap_eval_once (void)
+{
+  uint16_t value_1 = 0;
+  uint32_t value_2 = 0;
+  uint64_t value_3 = 0;
+
+  ASSERT (bswap_16 (value_1++) == 0);
+  ASSERT (bswap_32 (value_2++) == 0);
+  ASSERT (bswap_64 (value_3++) == 0);
+
+  ASSERT (value_1 == 1);
+  ASSERT (value_2 == 1);
+  ASSERT (value_3 == 1);
+}
+
+/* Test that the bswap functions accept floating-point arguments.  */
+static void
+test_bswap_double (void)
+{
+  ASSERT (bswap_16 (0.0) == 0);
+  ASSERT (bswap_32 (0.0) == 0);
+  ASSERT (bswap_64 (0.0) == 0);
+}
+
 int
-main ()
+main (void)
 {
-  ASSERT (bswap_16 (0xABCD) == 0xCDAB);
-  ASSERT (bswap_32 (0xDEADBEEF) == 0xEFBEADDE);
+  test_bswap_constant ();
+  test_bswap_eval_once ();
+  test_bswap_double ();
 
   return 0;
 }