Skip to content

Commit ea2183e

Browse files
committed
Add static test
1 parent c878ebf commit ea2183e

File tree

2 files changed

+46
-32
lines changed

2 files changed

+46
-32
lines changed

offload/unittests/OffloadAPI/device_code/CMakeLists.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ add_offload_test_device_code(bar.c bar)
44
add_offload_test_device_code(noargs.c noargs -O3)
55
add_offload_test_device_code(localmem.c localmem)
66
add_offload_test_device_code(localmem_reduction.c localmem_reduction)
7+
add_offload_test_device_code(localmem_static.c localmem_static)
78

8-
add_custom_target(offload_device_binaries DEPENDS foo.bin bar.bin noargs.bin localmem.bin localmem_reduction.bin)
9+
add_custom_target(offload_device_binaries DEPENDS
10+
foo.bin
11+
bar.bin
12+
noargs.bin
13+
localmem.bin
14+
localmem_reduction.bin
15+
localmem_static.bin
16+
)
917
set(OFFLOAD_TEST_DEVICE_CODE_PATH ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)

offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -38,36 +38,19 @@ struct LaunchKernelTestBase : OffloadQueueTest {
3838
ol_kernel_launch_size_args_t LaunchArgs{};
3939
};
4040

41-
struct olLaunchKernelTest : LaunchKernelTestBase {
42-
void SetUp() override {
43-
RETURN_ON_FATAL_FAILURE(LaunchKernelTestBase::SetUpKernel("foo"));
44-
}
45-
};
46-
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olLaunchKernelTest);
47-
48-
struct olLaunchKernelNoArgsTest : LaunchKernelTestBase {
49-
void SetUp() override {
50-
RETURN_ON_FATAL_FAILURE(LaunchKernelTestBase::SetUpKernel("noargs"));
51-
}
52-
};
53-
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olLaunchKernelNoArgsTest);
54-
55-
struct olLaunchKernelLocalMemTest : LaunchKernelTestBase {
56-
void SetUp() override {
57-
RETURN_ON_FATAL_FAILURE(LaunchKernelTestBase::SetUpKernel("localmem"));
58-
}
59-
};
60-
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olLaunchKernelLocalMemTest);
61-
62-
struct olLaunchKernelLocalMemReductionTest : LaunchKernelTestBase {
63-
void SetUp() override {
64-
RETURN_ON_FATAL_FAILURE(
65-
LaunchKernelTestBase::SetUpKernel("localmem_reduction"));
66-
}
67-
};
68-
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olLaunchKernelLocalMemReductionTest);
69-
70-
TEST_P(olLaunchKernelTest, Success) {
41+
#define KERNEL_TEST(NAME, KERNEL) \
42+
struct olLaunchKernel##NAME##Test : LaunchKernelTestBase { \
43+
void SetUp() override { LaunchKernelTestBase::SetUpKernel(#KERNEL); } \
44+
}; \
45+
OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olLaunchKernel##NAME##Test);
46+
47+
KERNEL_TEST(Foo, foo)
48+
KERNEL_TEST(NoArgs, noargs)
49+
KERNEL_TEST(LocalMem, localmem)
50+
KERNEL_TEST(LocalMemReduction, localmem_reduction)
51+
KERNEL_TEST(LocalMemStatic, localmem_static)
52+
53+
TEST_P(olLaunchKernelFooTest, Success) {
7154
void *Mem;
7255
ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_MANAGED,
7356
LaunchArgs.GroupSize.x * sizeof(uint32_t), &Mem));
@@ -95,7 +78,7 @@ TEST_P(olLaunchKernelNoArgsTest, Success) {
9578
ASSERT_SUCCESS(olWaitQueue(Queue));
9679
}
9780

98-
TEST_P(olLaunchKernelTest, SuccessSynchronous) {
81+
TEST_P(olLaunchKernelFooTest, SuccessSynchronous) {
9982
void *Mem;
10083
ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_MANAGED,
10184
LaunchArgs.GroupSize.x * sizeof(uint32_t), &Mem));
@@ -162,3 +145,26 @@ TEST_P(olLaunchKernelLocalMemReductionTest, Success) {
162145

163146
ASSERT_SUCCESS(olMemFree(Mem));
164147
}
148+
149+
TEST_P(olLaunchKernelLocalMemStaticTest, Success) {
150+
LaunchArgs.NumGroups.x = 4;
151+
LaunchArgs.DynSharedMemory = 0;
152+
153+
void *Mem;
154+
ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_MANAGED,
155+
LaunchArgs.NumGroups.x * sizeof(uint32_t), &Mem));
156+
struct {
157+
void *Mem;
158+
} Args{Mem};
159+
160+
ASSERT_SUCCESS(olLaunchKernel(Queue, Device, Kernel, &Args, sizeof(Args),
161+
&LaunchArgs, nullptr));
162+
163+
ASSERT_SUCCESS(olWaitQueue(Queue));
164+
165+
uint32_t *Data = (uint32_t *)Mem;
166+
for (uint32_t i = 0; i < LaunchArgs.NumGroups.x; i++)
167+
ASSERT_EQ(Data[i], 2 * LaunchArgs.GroupSize.x);
168+
169+
ASSERT_SUCCESS(olMemFree(Mem));
170+
}

0 commit comments

Comments
 (0)