summaryrefslogtreecommitdiff
path: root/test/pkmem-types.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-10-11 18:41:47 -0400
committerJonathan Bradley <jcb@pikum.xyz>2024-10-11 18:41:47 -0400
commit887a9f559e71d8a788fbfe210f126eda5ba7969b (patch)
tree23a282241115abad7f62f0c7b4f0973cab0c4952 /test/pkmem-types.cpp
initial commit: macros, memory, tests
Diffstat (limited to 'test/pkmem-types.cpp')
-rw-r--r--test/pkmem-types.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/test/pkmem-types.cpp b/test/pkmem-types.cpp
new file mode 100644
index 0000000..b8e19ef
--- /dev/null
+++ b/test/pkmem-types.cpp
@@ -0,0 +1,65 @@
+
+#include "../pkmem-types.h"
+#include "../pkmacros.h"
+
+#include <cstdio>
+
+int main(int argc, char *argv[])
+{
+ (void)argc;
+ (void)argv;
+ (void)stdout;
+
+ // pk_handle operator==
+ {
+ struct pk_handle h, bh;
+ bool res;
+
+ constexpr struct pk_handle ch1 { .bucketIndex = 0xAAAAAAAA, .itemIndex = 0x55555555 };
+ constexpr struct pk_handle cbh1 { .bucketIndex = 0xAAAAAAAA, .itemIndex = 0x55555555 };
+ constexpr bool ret1 = (ch1 == cbh1);
+ PK_LOGV_INF("pk_handle constexpr operator== 000: %b\n", ret1);
+
+ constexpr struct pk_handle ch2 { .bucketIndex = 0x00000000, .itemIndex = 0x00000000 };
+ constexpr struct pk_handle cbh2 { .bucketIndex = 0xFFFFFFFF, .itemIndex = 0xFFFFFFFF };
+ constexpr bool ret2 = (ch2 == cbh2);
+ PK_LOGV_INF("pk_handle constexpr operator== 001: %b\n", ret2);
+
+ h.bucketIndex = 0xCAFE;
+ h.itemIndex = 0xBABE;
+ bh.bucketIndex = 0xCAFE;
+ bh.itemIndex = 0xBABE;
+ res = h == bh;
+ PK_LOGV_INF("pk_handle operator== 000: %b\n", res);
+
+ h.bucketIndex = 0x00000000;
+ h.itemIndex = 0x00000000;
+ bh.bucketIndex = 0xFFFFFFFF;
+ bh.itemIndex = 0xFFFFFFFF;
+ res = h == bh;
+ PK_LOGV_INF("pk_handle operator== 001: %b\n", res);
+ }
+
+ // pk_handle_validate_constexpr
+ {
+ constexpr struct pk_handle cbh { .bucketIndex = 2, .itemIndex = 2 };
+
+ constexpr struct pk_handle ch1 { .bucketIndex = 0, .itemIndex = 0 };
+ constexpr enum PK_HANDLE_VALIDATION ret1 = pk_handle_validate_constexpr<ch1, cbh, 1024ULL>();
+ PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret1);
+
+ constexpr struct pk_handle ch2 { .bucketIndex = 3, .itemIndex = 0 };
+ constexpr enum PK_HANDLE_VALIDATION ret2 = pk_handle_validate_constexpr<ch2, cbh, 1024ULL>();
+ PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret2);
+
+ constexpr struct pk_handle ch3 { .bucketIndex = 2, .itemIndex = 3 };
+ constexpr enum PK_HANDLE_VALIDATION ret3 = pk_handle_validate_constexpr<ch3, cbh, 1024ULL>();
+ PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret3);
+
+ constexpr struct pk_handle ch4 = pk_handle_MAX_constexpr;
+ constexpr enum PK_HANDLE_VALIDATION ret4 = pk_handle_validate_constexpr<ch4, cbh, 1024ULL>();
+ PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret4);
+ }
+
+ return 0;
+}