[llvm] [libsycl] USM Aligned allocation functions (PR #213468)
Sergey Semenov via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 17 06:06:33 PDT 2026
================
@@ -0,0 +1,147 @@
+#include <mock/helpers.hpp>
+
+#include <sycl/__impl/device.hpp>
+#include <sycl/__impl/queue.hpp>
+#include <sycl/__impl/usm_functions.hpp>
+
+#include <detail/device_impl.hpp>
+#include <detail/queue_impl.hpp>
+
+#include <cstddef>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+using namespace sycl;
+using namespace ::testing;
+
+TEST(USMFunctions, DeviceAllocation) {
+ constexpr size_t NumBytes = 1024;
+ constexpr size_t Alignment = 256;
+ constexpr size_t DefaultAlign = alignof(std::max_align_t);
+
+ mock::MockWrapper Mock;
+ queue Q;
+ device Dev = Q.get_device();
+ context Ctx = Q.get_context();
+ ol_device_handle_t OLDev = detail::getSyclObjImpl(Dev)->getOLHandle();
+
+ // 1. Test malloc_device
+ void *DummyPtr1 = mock::createDummyHandle<void *>();
+ EXPECT_CALL(Mock.get(), olMemAllocAligned(OLDev, OL_ALLOC_TYPE_DEVICE,
+ NumBytes, DefaultAlign, _))
+ .Times(1)
+ .WillOnce([&](ol_device_handle_t Device, ol_alloc_type_t AllocType,
+ size_t Size, size_t Alignment,
+ void **OutPtr) -> ol_result_t {
+ *OutPtr = DummyPtr1;
+ return OL_SUCCESS;
+ });
+
+ void *Ptr1 = malloc_device(NumBytes, Dev, Ctx);
+ EXPECT_EQ(Ptr1, DummyPtr1);
+
+ EXPECT_CALL(Mock.get(), olMemFree(Ptr1))
+ .Times(1)
+ .WillOnce(Return(ol_result_t(OL_SUCCESS)));
----------------
sergey-semenov wrote:
No reason to explicitly check for the success result anymore since unit test default actions now use `EXPECT_*` to trigger test failures rather than return an error code.
https://github.com/llvm/llvm-project/pull/213468
More information about the llvm-commits
mailing list