[llvm] [Offload] Skip event tests on AMDGPU (PR #148632)
Kenneth Benzie via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 14 06:33:13 PDT 2025
https://github.com/kbenzie created https://github.com/llvm/llvm-project/pull/148632
Add `OffloadDeviceTest::getPlatformBackend()` and use it to skip event tests which currently fail on AMDGPU due to:
```
OL_ERRC_UNIMPLEMENTED: synchronize event not implemented
```
>From 6243f965404662c400495729f7dad0e93c83959d Mon Sep 17 00:00:00 2001
From: "Kenneth Benzie (Benie)" <k.benzie83 at gmail.com>
Date: Mon, 14 Jul 2025 14:30:33 +0100
Subject: [PATCH] [Offload] Skip event tests on AMDGPU
Add `OffloadDeviceTest::getPlatformBackend()` and use it to skip event
tests which currently fail on AMDGPU due to:
```
OL_ERRC_UNIMPLEMENTED: synchronize event not implemented
```
---
.../unittests/OffloadAPI/common/Fixtures.hpp | 18 +++++++++++++++++-
.../unittests/OffloadAPI/event/olWaitEvent.cpp | 12 +++++++++++-
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/offload/unittests/OffloadAPI/common/Fixtures.hpp b/offload/unittests/OffloadAPI/common/Fixtures.hpp
index 16ff3c4fe60a7..2bba4ea11cb11 100644
--- a/offload/unittests/OffloadAPI/common/Fixtures.hpp
+++ b/offload/unittests/OffloadAPI/common/Fixtures.hpp
@@ -73,6 +73,20 @@ struct OffloadDeviceTest
GTEST_SKIP() << "No available devices.";
}
+ ol_platform_backend_t getPlatformBackend() const {
+ ol_platform_handle_t Platform = nullptr;
+ if (olGetDeviceInfo(Device, OL_DEVICE_INFO_PLATFORM,
+ sizeof(ol_platform_handle_t), &Platform)) {
+ return OL_PLATFORM_BACKEND_UNKNOWN;
+ }
+ ol_platform_backend_t Backend;
+ if (olGetPlatformInfo(Platform, OL_PLATFORM_INFO_BACKEND,
+ sizeof(ol_platform_backend_t), &Backend)) {
+ return OL_PLATFORM_BACKEND_UNKNOWN;
+ }
+ return Backend;
+ }
+
ol_device_handle_t Device = nullptr;
};
@@ -159,7 +173,9 @@ struct OffloadQueueTest : OffloadDeviceTest {
struct OffloadEventTest : OffloadQueueTest {
void SetUp() override {
RETURN_ON_FATAL_FAILURE(OffloadQueueTest::SetUp());
-
+ if (getPlatformBackend() == OL_PLATFORM_BACKEND_AMDGPU) {
+ GTEST_SKIP() << "synchronize event not implemented";
+ }
// Get an event from a memcpy. We can still use it in olGetEventInfo etc
// after it has been waited on.
void *Alloc;
diff --git a/offload/unittests/OffloadAPI/event/olWaitEvent.cpp b/offload/unittests/OffloadAPI/event/olWaitEvent.cpp
index f80dabb4fc93f..33ad397774bd3 100644
--- a/offload/unittests/OffloadAPI/event/olWaitEvent.cpp
+++ b/offload/unittests/OffloadAPI/event/olWaitEvent.cpp
@@ -10,10 +10,20 @@
#include <OffloadAPI.h>
#include <gtest/gtest.h>
-using olWaitEventTest = OffloadQueueTest;
+struct olWaitEventTest : OffloadQueueTest {
+ void SetUp() override {
+ RETURN_ON_FATAL_FAILURE(OffloadQueueTest::SetUp());
+ if (getPlatformBackend() == OL_PLATFORM_BACKEND_AMDGPU) {
+ GTEST_SKIP() << "synchronize event not implemented";
+ }
+ }
+};
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olWaitEventTest);
TEST_P(olWaitEventTest, Success) {
+ if (getPlatformBackend() == OL_PLATFORM_BACKEND_AMDGPU) {
+ GTEST_SKIP() << "synchronize event not implemented";
+ }
uint32_t Src = 42;
void *DstPtr;
More information about the llvm-commits
mailing list