/* * Copyright 2010-2023 Branimir Karadzic. All rights reserved. * License: https://github.com/bkaradzic/bx/blob/master/LICENSE */ #include "test.h" #include #include void* bitsToPtr(uintptr_t _ui) { union { uintptr_t ui; void* ptr; } cast = { _ui }; return cast.ptr; } uintptr_t ptrToBits(void* _ptr) { union { void* ptr; uintptr_t ui; } cast = { _ptr }; return cast.ui; } TEST_CASE("SpSc", "") { bx::DefaultAllocator allocator; bx::SpScUnboundedQueue queue(&allocator); queue.push(bitsToPtr(0xdeadbeef) ); REQUIRE(0xdeadbeef == ptrToBits(queue.pop() ) ); } TEST_CASE("MpSc", "") { bx::DefaultAllocator allocator; bx::MpScUnboundedQueueT queue(&allocator); queue.push(bitsToPtr(0xdeadbeef) ); REQUIRE(0xdeadbeef == ptrToBits(queue.pop() ) ); }