summaryrefslogtreecommitdiff
path: root/3rdparty/plibsys/tests/ptypes_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/plibsys/tests/ptypes_test.cpp')
-rw-r--r--3rdparty/plibsys/tests/ptypes_test.cpp456
1 files changed, 456 insertions, 0 deletions
diff --git a/3rdparty/plibsys/tests/ptypes_test.cpp b/3rdparty/plibsys/tests/ptypes_test.cpp
new file mode 100644
index 0000000..1e9c0e9
--- /dev/null
+++ b/3rdparty/plibsys/tests/ptypes_test.cpp
@@ -0,0 +1,456 @@
+/*
+ * The MIT License
+ *
+ * Copyright (C) 2014-2017 Alexander Saprykin <saprykin.spb@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * 'Software'), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "plibsys.h"
+#include "ptestmacros.h"
+
+P_TEST_MODULE_INIT ();
+
+P_TEST_CASE_BEGIN (ptypes_general_test)
+{
+ p_libsys_init ();
+
+ P_TEST_CHECK (P_BYTE_ORDER == P_LITTLE_ENDIAN ||
+ P_BYTE_ORDER == P_BIG_ENDIAN);
+
+ P_TEST_CHECK (sizeof (pint8) == 1);
+ P_TEST_CHECK (sizeof (puint8) == 1);
+ P_TEST_CHECK (sizeof (pint16) == 2);
+ P_TEST_CHECK (sizeof (puint16) == 2);
+ P_TEST_CHECK (sizeof (pint32) == 4);
+ P_TEST_CHECK (sizeof (puint32) == 4);
+ P_TEST_CHECK (sizeof (pint64) == 8);
+ P_TEST_CHECK (sizeof (puint64) == 8);
+ P_TEST_CHECK (sizeof (void *) == sizeof (ppointer));
+ P_TEST_CHECK (sizeof (const void *) == sizeof (pconstpointer));
+ P_TEST_CHECK (sizeof (int) == sizeof (pboolean));
+ P_TEST_CHECK (sizeof (char) == sizeof (pchar));
+ P_TEST_CHECK (sizeof (short) == sizeof (pshort));
+ P_TEST_CHECK (sizeof (int) == sizeof (pint));
+ P_TEST_CHECK (sizeof (long) == sizeof (plong));
+ P_TEST_CHECK (sizeof (unsigned char) == sizeof (puchar));
+ P_TEST_CHECK (sizeof (unsigned short) == sizeof (pushort));
+ P_TEST_CHECK (sizeof (unsigned int) == sizeof (puint));
+ P_TEST_CHECK (sizeof (unsigned long) == sizeof (pulong));
+ P_TEST_CHECK (sizeof (float) == sizeof (pfloat));
+ P_TEST_CHECK (sizeof (double) == sizeof (pdouble));
+ P_TEST_CHECK (sizeof (pintptr) == PLIBSYS_SIZEOF_VOID_P);
+ P_TEST_CHECK (sizeof (puintptr) == PLIBSYS_SIZEOF_VOID_P);
+ P_TEST_CHECK (sizeof (psize) == PLIBSYS_SIZEOF_SIZE_T);
+ P_TEST_CHECK (sizeof (pssize) == PLIBSYS_SIZEOF_SIZE_T);
+ P_TEST_CHECK (sizeof (plong) == PLIBSYS_SIZEOF_LONG);
+ P_TEST_CHECK (sizeof (pulong) == PLIBSYS_SIZEOF_LONG);
+ P_TEST_CHECK (sizeof (poffset) == 8);
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_CASE_BEGIN (ptypes_pointers_convert_test)
+{
+ p_libsys_init ();
+
+ ppointer pointer = P_INT_TO_POINTER (128);
+ P_TEST_CHECK (P_POINTER_TO_INT (pointer) == 128);
+
+ pint pint_val = -64;
+ pointer = PINT_TO_POINTER (pint_val);
+ P_TEST_CHECK (PPOINTER_TO_INT (pointer) == -64);
+
+ puint puint_val = 64;
+ pointer = PUINT_TO_POINTER (puint_val);
+ P_TEST_CHECK (PPOINTER_TO_UINT (pointer) == 64);
+
+ psize psize_val = 1024;
+ pointer = PSIZE_TO_POINTER (psize_val);
+ P_TEST_CHECK (PPOINTER_TO_PSIZE (psize_val) == 1024);
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_CASE_BEGIN (ptypes_min_max_test)
+{
+ p_libsys_init ();
+
+ P_TEST_CHECK (P_MININT8 == (pint8) 0x80);
+ P_TEST_CHECK (P_MAXINT8 == (pint8) 0x7F);
+ P_TEST_CHECK (P_MAXUINT8 == (puint8) 0xFF);
+ P_TEST_CHECK (P_MININT16 == (pint16) 0x8000);
+ P_TEST_CHECK (P_MAXINT16 == (pint16) 0x7FFF);
+ P_TEST_CHECK (P_MAXUINT16 == (puint16) 0xFFFF);
+ P_TEST_CHECK (P_MININT32 == (pint32) 0x80000000);
+ P_TEST_CHECK (P_MAXINT32 == (pint32) 0x7FFFFFFF);
+ P_TEST_CHECK (P_MAXUINT32 == (puint32) 0xFFFFFFFF);
+ P_TEST_CHECK (P_MININT64 == (pint64) 0x8000000000000000LL);
+ P_TEST_CHECK (P_MAXINT64 == (pint64) 0x7FFFFFFFFFFFFFFFLL);
+ P_TEST_CHECK (P_MAXUINT64 == (puint64) 0xFFFFFFFFFFFFFFFFULL);
+
+ if (PLIBSYS_SIZEOF_SIZE_T == 8) {
+ P_TEST_CHECK (P_MINSSIZE == P_MININT64);
+ P_TEST_CHECK (P_MAXSSIZE == P_MAXINT64);
+ P_TEST_CHECK (P_MAXSIZE == P_MAXUINT64);
+
+ if (PLIBSYS_SIZEOF_LONG == 8) {
+ P_TEST_CHECK (P_MINSSIZE == P_MINLONG);
+ P_TEST_CHECK (P_MAXSSIZE == P_MAXLONG);
+ P_TEST_CHECK (P_MAXSIZE == P_MAXULONG);
+ }
+ } else {
+ P_TEST_CHECK (P_MINSSIZE == P_MININT32);
+ P_TEST_CHECK (P_MAXSSIZE == P_MAXINT32);
+ P_TEST_CHECK (P_MAXSIZE == P_MAXUINT32);
+
+ if (PLIBSYS_SIZEOF_LONG == 4) {
+ P_TEST_CHECK (P_MINSSIZE == P_MINLONG);
+ P_TEST_CHECK (P_MAXSSIZE == P_MAXLONG);
+ P_TEST_CHECK (P_MAXSIZE == P_MAXULONG);
+ }
+ }
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_CASE_BEGIN (ptypes_modifiers_test)
+{
+ p_libsys_init ();
+
+ psize size_val = 256;
+ printf ("%#" PSIZE_MODIFIER "x\n", size_val);
+ pssize ssize_val = -256;
+ printf ("%#" PSIZE_MODIFIER "x\n", ssize_val);
+
+ puintptr puintptr_val = 512;
+ printf ("%#" PINTPTR_MODIFIER "x\n", puintptr_val);
+ pintptr pintptr_val = -512;
+ printf ("%#" PINTPTR_MODIFIER "x\n", pintptr_val);
+
+ puint16 puint16_val = 1024;
+ printf ("%#" PINT16_MODIFIER "x\n", puint16_val);
+ pint16 pint16_val = -1024;
+ printf ("%#" PINT16_MODIFIER "x\n", pint16_val);
+
+ puint32 puint32_val = 2048;
+ printf ("%#" PINT32_MODIFIER "x\n", puint32_val);
+ pint32 pint32_val = -2048;
+ printf ("%#" PINT32_MODIFIER "x\n", pint32_val);
+
+ puint64 puint64_val = 4096;
+ printf ("%#" PINT64_MODIFIER "x\n", puint64_val);
+ pint64 pint64_val = -4096;
+ printf ("%#" PINT64_MODIFIER "x\n", pint64_val);
+
+ poffset poffset_val = 8192;
+ printf ("%#" POFFSET_MODIFIER "x\n", poffset_val);
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_CASE_BEGIN (ptypes_formats_test)
+{
+ p_libsys_init ();
+
+ pssize ssize_val = -256;
+ printf ("%" PSSIZE_FORMAT "\n", ssize_val);
+ psize size_val = 256;
+ printf ("%" PSIZE_FORMAT "\n", size_val);
+
+ puintptr puintptr_val = 512;
+ printf ("%" PUINTPTR_FORMAT "\n", puintptr_val);
+ pintptr pintptr_val = -512;
+ printf ("%" PINTPTR_FORMAT "\n", pintptr_val);
+
+ puint16 puint16_val = 1024;
+ printf ("%" PUINT16_FORMAT "\n", puint16_val);
+ pint16 pint16_val = -1024;
+ printf ("%" PINT16_FORMAT "\n", pint16_val);
+
+ puint32 puint32_val = 2048;
+ printf ("%" PUINT32_FORMAT "\n", puint32_val);
+ pint32 pint32_val = -2048;
+ printf ("%" PINT32_FORMAT "\n", pint32_val);
+
+ puint64 puint64_val = 4096;
+ printf ("%" PUINT64_FORMAT "\n", puint64_val);
+ pint64 pint64_val = -4096;
+ printf ("%" PINT64_FORMAT "\n", pint64_val);
+
+ poffset poffset_val = 8192;
+ printf ("%" POFFSET_FORMAT "\n", poffset_val);
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_CASE_BEGIN (ptypes_host_network_test)
+{
+ p_libsys_init ();
+
+ if (P_BYTE_ORDER == P_LITTLE_ENDIAN) {
+ pint16 pint16_val = PINT16_TO_BE (0xFFE0);
+ P_TEST_CHECK (pint16_val == (pint16) 0xE0FF);
+ P_TEST_CHECK (PINT16_FROM_BE (pint16_val) == (pint16) 0xFFE0);
+ P_TEST_CHECK (PINT16_TO_LE (pint16_val) == (pint16) 0xE0FF);
+ P_TEST_CHECK (PINT16_FROM_LE (pint16_val) == (pint16) 0xE0FF);
+
+ puint16 puint16_val = PUINT16_TO_BE (0x0020);
+ P_TEST_CHECK (puint16_val == (puint16) 0x2000);
+ P_TEST_CHECK (PUINT16_FROM_BE (puint16_val) == (puint16) 0x0020);
+ P_TEST_CHECK (PUINT16_TO_LE (puint16_val) == (puint16) 0x2000);
+ P_TEST_CHECK (PUINT16_FROM_LE (puint16_val) == (puint16) 0x2000);
+
+ pint32 pint32_val = PINT32_TO_BE (0xFFFFFFC0);
+ P_TEST_CHECK (pint32_val == (pint32) 0xC0FFFFFF);
+ P_TEST_CHECK (PINT32_FROM_BE (pint32_val) == (pint32) 0xFFFFFFC0);
+ P_TEST_CHECK (PINT32_TO_LE (pint32_val) == (pint32) 0xC0FFFFFF);
+ P_TEST_CHECK (PINT32_FROM_LE (pint32_val) == (pint32) 0xC0FFFFFF);
+
+ puint32 puint32_val = PUINT32_TO_BE (0x00000040);
+ P_TEST_CHECK (puint32_val == (puint32) 0x40000000);
+ P_TEST_CHECK (PUINT32_FROM_BE (puint32_val) == (puint32) 0x00000040);
+ P_TEST_CHECK (PUINT32_TO_LE (puint32_val) == (puint32) 0x40000000);
+ P_TEST_CHECK (PUINT32_FROM_LE (puint32_val) == (puint32) 0x40000000);
+
+ pint64 pint64_val = PINT64_TO_BE (0xFFFFFFFFFFFFFF80LL);
+ P_TEST_CHECK (pint64_val == (pint64) 0x80FFFFFFFFFFFFFFLL);
+ P_TEST_CHECK (PINT64_FROM_BE (pint64_val) == (pint64) 0xFFFFFFFFFFFFFF80LL);
+ P_TEST_CHECK (PINT64_TO_LE (pint64_val) == (pint64) 0x80FFFFFFFFFFFFFFLL);
+ P_TEST_CHECK (PINT64_FROM_LE (pint64_val) == (pint64) 0x80FFFFFFFFFFFFFFLL);
+
+ puint64 puint64_val = PUINT64_TO_BE (0x0000000000000080ULL);
+ P_TEST_CHECK (puint64_val == (puint64) 0x8000000000000000ULL);
+ P_TEST_CHECK (PUINT64_FROM_BE (puint64_val) == (puint64) 0x0000000000000080ULL);
+ P_TEST_CHECK (PUINT64_TO_LE (puint64_val) == (puint64) 0x8000000000000000ULL);
+ P_TEST_CHECK (PUINT64_FROM_LE (puint64_val) == (puint64) 0x8000000000000000ULL);
+
+ pint pint_val = PINT_TO_BE (0xFFFFFC00);
+ P_TEST_CHECK (pint_val == (pint) 0x00FCFFFF);
+ P_TEST_CHECK (PINT_FROM_BE (pint_val) == (pint) 0xFFFFFC00);
+ P_TEST_CHECK (PINT_TO_LE (pint_val) == (pint) 0x00FCFFFF);
+ P_TEST_CHECK (PINT_FROM_LE (pint_val) == (pint) 0x00FCFFFF);
+
+ puint puint_val = PUINT_TO_BE (0x00000400);
+ P_TEST_CHECK (puint_val == (puint) 0x00040000);
+ P_TEST_CHECK (PUINT_FROM_BE (puint_val) == (puint) 0x00000400);
+ P_TEST_CHECK (PUINT_TO_LE (puint_val) == (puint) 0x00040000);
+ P_TEST_CHECK (PUINT_FROM_LE (puint_val) == (puint) 0x00040000);
+
+ if (PLIBSYS_SIZEOF_LONG == 8) {
+ plong plong_val = PLONG_TO_BE (0xFFFFFFFFFFFFF800LL);
+ P_TEST_CHECK (plong_val == (plong) 0x00F8FFFFFFFFFFFFLL);
+ P_TEST_CHECK (PLONG_FROM_BE (plong_val) == (plong) 0xFFFFFFFFFFFFF800LL);
+ P_TEST_CHECK (PLONG_TO_LE (plong_val) == (plong) 0x00F8FFFFFFFFFFFFLL);
+ P_TEST_CHECK (PLONG_FROM_LE (plong_val) == (plong) 0x00F8FFFFFFFFFFFFLL);
+
+ pulong pulong_val = PULONG_TO_BE (0x0000000000000800ULL);
+ P_TEST_CHECK (pulong_val == (pulong) 0x0008000000000000ULL);
+ P_TEST_CHECK (PULONG_FROM_BE (pulong_val) == (pulong) 0x0000000000000800ULL);
+ P_TEST_CHECK (PULONG_TO_LE (pulong_val) == (pulong) 0x0008000000000000ULL);
+ P_TEST_CHECK (PULONG_FROM_LE (pulong_val) == (pulong) 0x0008000000000000ULL);
+ } else {
+ plong plong_val = PLONG_TO_BE (0xFFFFF800);
+ P_TEST_CHECK (plong_val == (plong) 0x00F8FFFF);
+ P_TEST_CHECK (PLONG_FROM_BE (plong_val) == (plong) 0xFFFFF800);
+ P_TEST_CHECK (PLONG_TO_LE (plong_val) == (plong) 0x00F8FFFF);
+ P_TEST_CHECK (PLONG_FROM_LE (plong_val) == (plong) 0x00F8FFFF);
+
+ pulong pulong_val = PULONG_TO_BE (0x00000800);
+ P_TEST_CHECK (pulong_val == (pulong) 0x00080000);
+ P_TEST_CHECK (PULONG_FROM_BE (pulong_val) == (pulong) 0x00000800);
+ P_TEST_CHECK (PULONG_TO_LE (pulong_val) == (pulong) 0x00080000);
+ P_TEST_CHECK (PULONG_FROM_LE (pulong_val) == (pulong) 0x00080000);
+ }
+
+ if (PLIBSYS_SIZEOF_SIZE_T == 8) {
+ psize psize_val = PSIZE_TO_BE (0x0000000000001000ULL);
+ P_TEST_CHECK (psize_val == (psize) 0x0010000000000000ULL);
+ P_TEST_CHECK (PSIZE_FROM_BE (psize_val) == (psize) 0x0000000000001000ULL);
+ P_TEST_CHECK (PSIZE_TO_LE (psize_val) == (psize) 0x0010000000000000ULL);
+ P_TEST_CHECK (PSIZE_FROM_LE (psize_val) == (psize) 0x0010000000000000ULL);
+
+ pssize pssize_val = PSSIZE_TO_BE (0x000000000000F000LL);
+ P_TEST_CHECK (pssize_val == (pssize) 0x00F0000000000000LL);
+ P_TEST_CHECK (PSSIZE_FROM_BE (pssize_val) == (pssize) 0x000000000000F000LL);
+ P_TEST_CHECK (PSSIZE_TO_LE (pssize_val) == (pssize) 0x00F0000000000000LL);
+ P_TEST_CHECK (PSSIZE_FROM_LE (pssize_val) == (pssize) 0x00F0000000000000LL);
+ } else {
+ psize psize_val = PSIZE_TO_BE (0x00001000);
+ P_TEST_CHECK (psize_val == (psize) 0x00100000);
+ P_TEST_CHECK (PSIZE_FROM_BE (psize_val) == (psize) 0x00001000);
+ P_TEST_CHECK (PSIZE_TO_LE (psize_val) == (psize) 0x00100000);
+ P_TEST_CHECK (PSIZE_FROM_LE (psize_val) == (psize) 0x00100000);
+
+ pssize pssize_val = PSSIZE_TO_BE (0x0000F000);
+ P_TEST_CHECK (pssize_val == (pssize) 0x00F00000);
+ P_TEST_CHECK (PSSIZE_FROM_BE (pssize_val) == (pssize) 0x0000F000);
+ P_TEST_CHECK (PSSIZE_TO_LE (pssize_val) == (pssize) 0x00F00000);
+ P_TEST_CHECK (PSSIZE_FROM_LE (pssize_val) == (pssize) 0x00F00000);
+ }
+
+ puint16_val = p_htons (0x0020);
+ P_TEST_CHECK (puint16_val == (puint16) 0x2000);
+ P_TEST_CHECK (p_ntohs (puint16_val) == (puint16) 0x0020);
+
+ puint32_val = p_htonl (0x00000040);
+ P_TEST_CHECK (puint32_val == (puint32) 0x40000000);
+ P_TEST_CHECK (p_ntohl (puint32_val) == (puint32) 0x00000040);
+ } else {
+ pint16 pint16_val = PINT16_TO_LE (0xFFE0);
+ P_TEST_CHECK (pint16_val == (pint16) 0xE0FF);
+ P_TEST_CHECK (PINT16_FROM_LE (pint16_val) == (pint16) 0xFFE0);
+ P_TEST_CHECK (PINT16_TO_BE (pint16_val) == (pint16) 0xE0FF);
+ P_TEST_CHECK (PINT16_FROM_BE (pint16_val) == (pint16) 0xE0FF);
+
+ puint16 puint16_val = PUINT16_TO_LE (0x0020);
+ P_TEST_CHECK (puint16_val == (puint16) 0x2000);
+ P_TEST_CHECK (PUINT16_FROM_LE (puint16_val) == (puint16) 0x0020);
+ P_TEST_CHECK (PUINT16_TO_BE (puint16_val) == (puint16) 0x2000);
+ P_TEST_CHECK (PUINT16_FROM_BE (puint16_val) == (puint16) 0x2000);
+
+ pint32 pint32_val = PINT32_TO_LE (0xFFFFFFC0);
+ P_TEST_CHECK (pint32_val == (pint32) 0xC0FFFFFF);
+ P_TEST_CHECK (PINT32_FROM_LE (pint32_val) == (pint32) 0xFFFFFFC0);
+ P_TEST_CHECK (PINT32_TO_BE (pint32_val) == (pint32) 0xC0FFFFFF);
+ P_TEST_CHECK (PINT32_FROM_BE (pint32_val) == (pint32) 0xC0FFFFFF);
+
+ puint32 puint32_val = PUINT32_TO_LE (0x00000040);
+ P_TEST_CHECK (puint32_val == (puint32) 0x40000000);
+ P_TEST_CHECK (PUINT32_FROM_LE (puint32_val) == (puint32) 0x00000040);
+ P_TEST_CHECK (PUINT32_TO_BE (puint32_val) == (puint32) 0x40000000);
+ P_TEST_CHECK (PUINT32_FROM_BE (puint32_val) == (puint32) 0x40000000);
+
+ pint64 pint64_val = PINT64_TO_LE (0xFFFFFFFFFFFFFF80LL);
+ P_TEST_CHECK (pint64_val == (pint64) 0x80FFFFFFFFFFFFFFLL);
+ P_TEST_CHECK (PINT64_FROM_LE (pint64_val) == (pint64) 0xFFFFFFFFFFFFFF80LL);
+ P_TEST_CHECK (PINT64_TO_BE (pint64_val) == (pint64) 0x80FFFFFFFFFFFFFFLL);
+ P_TEST_CHECK (PINT64_FROM_BE (pint64_val) == (pint64) 0x80FFFFFFFFFFFFFFLL);
+
+ puint64 puint64_val = PUINT64_TO_LE (0x0000000000000080ULL);
+ P_TEST_CHECK (puint64_val == (puint64) 0x8000000000000000ULL);
+ P_TEST_CHECK (PUINT64_FROM_LE (puint64_val) == (puint64) 0x0000000000000080ULL);
+ P_TEST_CHECK (PUINT64_TO_BE (puint64_val) == (puint64) 0x8000000000000000ULL);
+ P_TEST_CHECK (PUINT64_FROM_BE (puint64_val) == (puint64) 0x8000000000000000ULL);
+
+ pint pint_val = PINT_TO_LE (0xFFFFFC00);
+ P_TEST_CHECK (pint_val == (pint) 0x00FCFFFF);
+ P_TEST_CHECK (PINT_FROM_LE (pint_val) == (pint) 0xFFFFFC00);
+ P_TEST_CHECK (PINT_TO_BE (pint_val) == (pint) 0x00FCFFFF);
+ P_TEST_CHECK (PINT_FROM_BE (pint_val) == (pint) 0x00FCFFFF);
+
+ puint puint_val = PUINT_TO_LE (0x00000400);
+ P_TEST_CHECK (puint_val == (puint) 0x00040000);
+ P_TEST_CHECK (PUINT_FROM_LE (puint_val) == (puint) 0x00000400);
+ P_TEST_CHECK (PUINT_TO_BE (puint_val) == (puint) 0x00040000);
+ P_TEST_CHECK (PUINT_FROM_BE (puint_val) == (puint) 0x00040000);
+
+ if (PLIBSYS_SIZEOF_LONG == 8) {
+ plong plong_val = PLONG_TO_LE (0xFFFFFFFFFFFFF800LL);
+ P_TEST_CHECK (plong_val == (plong) 0x00F8FFFFFFFFFFFFLL);
+ P_TEST_CHECK (PLONG_FROM_LE (plong_val) == (plong) 0xFFFFFFFFFFFFF800LL);
+ P_TEST_CHECK (PLONG_TO_BE (plong_val) == (plong) 0x00F8FFFFFFFFFFFFLL);
+ P_TEST_CHECK (PLONG_FROM_BE (plong_val) == (plong) 0x00F8FFFFFFFFFFFFLL);
+
+ pulong pulong_val = PULONG_TO_LE (0x0000000000000800ULL);
+ P_TEST_CHECK (pulong_val == (pulong) 0x0008000000000000ULL);
+ P_TEST_CHECK (PULONG_FROM_LE (pulong_val) == (pulong) 0x0000000000000800ULL);
+ P_TEST_CHECK (PULONG_TO_BE (pulong_val) == (pulong) 0x0008000000000000ULL);
+ P_TEST_CHECK (PULONG_FROM_BE (pulong_val) == (pulong) 0x0008000000000000ULL);
+ } else {
+ plong plong_val = PLONG_TO_LE (0xFFFFF800);
+ P_TEST_CHECK (plong_val == (plong) 0x00F8FFFF);
+ P_TEST_CHECK (PLONG_FROM_LE (plong_val) == (plong) 0xFFFFF800);
+ P_TEST_CHECK (PLONG_TO_BE (plong_val) == (plong) 0x00F8FFFF);
+ P_TEST_CHECK (PLONG_FROM_BE (plong_val) == (plong) 0x00F8FFFF);
+
+ pulong pulong_val = PULONG_TO_LE (0x00000800);
+ P_TEST_CHECK (pulong_val == (pulong) 0x00080000);
+ P_TEST_CHECK (PULONG_FROM_LE (pulong_val) == (pulong) 0x00000800);
+ P_TEST_CHECK (PULONG_TO_BE (pulong_val) == (pulong) 0x00080000);
+ P_TEST_CHECK (PULONG_FROM_BE (pulong_val) == (pulong) 0x00080000);
+ }
+
+ if (PLIBSYS_SIZEOF_SIZE_T == 8) {
+ psize psize_val = PSIZE_TO_LE (0x0000000000001000ULL);
+ P_TEST_CHECK (psize_val == (psize) 0x0010000000000000ULL);
+ P_TEST_CHECK (PSIZE_FROM_LE (psize_val) == (psize) 0x0000000000001000ULL);
+ P_TEST_CHECK (PSIZE_TO_BE (psize_val) == (psize) 0x0010000000000000ULL);
+ P_TEST_CHECK (PSIZE_FROM_BE (psize_val) == (psize) 0x0010000000000000ULL);
+
+ pssize pssize_val = PSSIZE_TO_LE (0x000000000000F000LL);
+ P_TEST_CHECK (pssize_val == (pssize) 0x00F0000000000000LL);
+ P_TEST_CHECK (PSSIZE_FROM_LE (pssize_val) == (pssize) 0x000000000000F000LL);
+ P_TEST_CHECK (PSSIZE_TO_BE (pssize_val) == (pssize) 0x00F0000000000000LL);
+ P_TEST_CHECK (PSSIZE_FROM_BE (pssize_val) == (pssize) 0x00F0000000000000LL);
+ } else {
+ psize psize_val = PSIZE_TO_LE (0x00001000);
+ P_TEST_CHECK (psize_val == (psize) 0x00100000);
+ P_TEST_CHECK (PSIZE_FROM_LE (psize_val) == (psize) 0x00001000);
+ P_TEST_CHECK (PSIZE_TO_BE (psize_val) == (psize) 0x00100000);
+ P_TEST_CHECK (PSIZE_FROM_BE (psize_val) == (psize) 0x00100000);
+
+ pssize pssize_val = PSSIZE_TO_LE (0x0000F000);
+ P_TEST_CHECK (pssize_val == (pssize) 0x00F00000);
+ P_TEST_CHECK (PSSIZE_FROM_LE (pssize_val) == (pssize) 0x0000F000);
+ P_TEST_CHECK (PSSIZE_TO_BE (pssize_val) == (pssize) 0x00F00000);
+ P_TEST_CHECK (PSSIZE_FROM_BE (pssize_val) == (pssize) 0x00F00000);
+ }
+
+ puint16_val = p_htons (0x0020);
+ P_TEST_CHECK (puint16_val == (puint16) 0x0020);
+ P_TEST_CHECK (p_ntohs (puint16_val) == (puint16) 0x0020);
+
+ puint32_val = p_htonl (0x00000040);
+ P_TEST_CHECK (puint32_val == (puint32) 0x00000040);
+ P_TEST_CHECK (p_ntohl (puint32_val) == (puint32) 0x00000040);
+ }
+
+ puint16 puint16_val = PUINT16_SWAP_BYTES (0x0020);
+ P_TEST_CHECK (puint16_val == (puint16) 0x2000);
+ P_TEST_CHECK (PUINT16_SWAP_BYTES (puint16_val) == (puint16) 0x0020);
+
+ puint32 puint32_val = PUINT32_SWAP_BYTES (0x00000040);
+ P_TEST_CHECK (puint32_val == (puint32) 0x40000000);
+ P_TEST_CHECK (PUINT32_SWAP_BYTES (puint32_val) == (puint32) 0x00000040);
+
+ puint64 puint64_val = PUINT64_SWAP_BYTES (0x0000000000000080ULL);
+ P_TEST_CHECK (puint64_val == (puint64) 0x8000000000000000ULL);
+ P_TEST_CHECK (PUINT64_SWAP_BYTES (puint64_val) == (puint64) 0x0000000000000080ULL);
+
+ p_libsys_shutdown ();
+}
+P_TEST_CASE_END ()
+
+P_TEST_SUITE_BEGIN()
+{
+ P_TEST_SUITE_RUN_CASE (ptypes_general_test);
+ P_TEST_SUITE_RUN_CASE (ptypes_pointers_convert_test);
+ P_TEST_SUITE_RUN_CASE (ptypes_min_max_test);
+ P_TEST_SUITE_RUN_CASE (ptypes_modifiers_test);
+ P_TEST_SUITE_RUN_CASE (ptypes_formats_test);
+ P_TEST_SUITE_RUN_CASE (ptypes_host_network_test);
+}
+P_TEST_SUITE_END()