Skip to content

Commit 7ccd973

Browse files
committed
fix
1 parent 244df7f commit 7ccd973

File tree

2 files changed

+45
-24
lines changed

2 files changed

+45
-24
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
add_sycl_unittest(VirtualMemoryExtensionTests OBJECT
2-
MultipleDevices.cpp
2+
Exceptions.cpp
33
)
44

sycl/unittests/Extensions/VirtualMemory/MultipleDevices.cpp renamed to sycl/unittests/Extensions/VirtualMemory/Exceptions.cpp

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,36 +35,51 @@ ur_result_t setup_urDeviceGet(void *pParams) {
3535
}
3636
return UR_RESULT_SUCCESS;
3737
}
38-
ur_result_t setup_urDeviceGetInfo(void *pParams) {
38+
39+
template <bool VirtualMemSupported>
40+
ur_result_t after_urDeviceGetInfo_AllDevices(void *pParams) {
3941
auto params = *static_cast<ur_device_get_info_params_t *>(pParams);
4042
switch (*params.ppropName) {
4143
case UR_DEVICE_INFO_VIRTUAL_MEMORY_SUPPORT: {
42-
if (*params.ppPropValue) {
43-
if (*params.phDevice == GlobalDevicesHandle[0]) {
44-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
44+
if (*params.ppPropValue)
45+
*static_cast<ur_bool_t *>(*params.ppPropValue) = VirtualMemSupported;
46+
return UR_RESULT_SUCCESS;
47+
}
48+
default:;
49+
}
50+
return UR_RESULT_SUCCESS;
51+
}
52+
53+
template <bool VirtualMemSupported>
54+
ur_result_t after_urDeviceGetInfo_SingleDevice(void *pParams) {
55+
auto params = *static_cast<ur_device_get_info_params_t *>(pParams);
56+
switch (*params.ppropName) {
57+
case UR_DEVICE_INFO_VIRTUAL_MEMORY_SUPPORT: {
58+
if (*params.ppPropValue){
59+
if (*params.phDevice == GlobalDevicesHandle[0]){
60+
*static_cast<ur_bool_t *>(*params.ppPropValue) = VirtualMemSupported;
4561
}
4662
}
47-
break;
48-
}
49-
default: {
50-
break;
63+
return UR_RESULT_SUCCESS;
5164
}
65+
default:;
5266
}
5367
return UR_RESULT_SUCCESS;
5468
}
5569

5670
TEST(VirtualMemoryMultipleDevices, ThrowExceptionForGetMemGranularityContext) {
5771

5872
sycl::unittest::UrMock<> Mock;
59-
mock::getCallbacks().set_replace_callback("urDeviceGet", &setup_urDeviceGet);
60-
mock::getCallbacks().set_replace_callback("urDeviceGetInfo",
61-
&setup_urDeviceGetInfo);
73+
mock::getCallbacks().set_after_callback("urDeviceGet", &setup_urDeviceGet);
74+
mock::getCallbacks().set_after_callback("urDeviceGetInfo",
75+
&after_urDeviceGetInfo_SingleDevice<false>);
6276
sycl::platform Platform = sycl::platform();
6377
sycl::context Context{Platform};
6478

6579
try {
6680
syclext::get_mem_granularity(Context,
6781
syclext::granularity_mode::recommended);
82+
FAIL() << "No exception thrown.";
6883
} catch (sycl::exception &e) {
6984
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
7085
EXPECT_STREQ(e.what(), "One or more devices in the context does not "
@@ -73,6 +88,7 @@ TEST(VirtualMemoryMultipleDevices, ThrowExceptionForGetMemGranularityContext) {
7388

7489
try {
7590
syclext::get_mem_granularity(Context, syclext::granularity_mode::minimum);
91+
FAIL() << "No exception thrown.";
7692
} catch (sycl::exception &e) {
7793
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
7894
EXPECT_STREQ(e.what(), "One or more devices in the context does not "
@@ -83,24 +99,27 @@ TEST(VirtualMemoryMultipleDevices, ThrowExceptionForGetMemGranularityContext) {
8399
TEST(VirtualMemoryMultipleDevices, ThrowExceptionForGetMemGranularityDevice) {
84100

85101
sycl::unittest::UrMock<> Mock;
86-
mock::getCallbacks().set_replace_callback("urDeviceGet", &setup_urDeviceGet);
87-
mock::getCallbacks().set_replace_callback("urDeviceGetInfo",
88-
&setup_urDeviceGetInfo);
102+
mock::getCallbacks().set_after_callback("urDeviceGet", &setup_urDeviceGet);
103+
mock::getCallbacks().set_after_callback("urDeviceGetInfo",
104+
&after_urDeviceGetInfo_AllDevices<false>);
105+
89106
sycl::platform Platform = sycl::platform();
90107
sycl::context Context{Platform};
91108

92109
try {
93-
syclext::get_mem_granularity(Context.get_devices().front(), Context,
110+
syclext::get_mem_granularity(Context.get_devices()[0], Context,
94111
syclext::granularity_mode::recommended);
112+
FAIL() << "No exception thrown.";
95113
} catch (sycl::exception &e) {
96114
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
97115
EXPECT_STREQ(e.what(),
98116
"Device does not support aspect::ext_oneapi_virtual_mem.");
99117
}
100118

101119
try {
102-
syclext::get_mem_granularity(Context.get_devices().front(), Context,
120+
syclext::get_mem_granularity(Context.get_devices()[0], Context,
103121
syclext::granularity_mode::minimum);
122+
FAIL() << "No exception thrown.";
104123
} catch (sycl::exception &e) {
105124
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
106125
EXPECT_STREQ(e.what(),
@@ -111,14 +130,15 @@ TEST(VirtualMemoryMultipleDevices, ThrowExceptionForGetMemGranularityDevice) {
111130
TEST(VirtualMemoryMultipleDevices, ReserveVirtualMemoryRange) {
112131

113132
sycl::unittest::UrMock<> Mock;
114-
mock::getCallbacks().set_replace_callback("urDeviceGet", &setup_urDeviceGet);
115-
mock::getCallbacks().set_replace_callback("urDeviceGetInfo",
116-
&setup_urDeviceGetInfo);
133+
mock::getCallbacks().set_after_callback("urDeviceGet", &setup_urDeviceGet);
134+
mock::getCallbacks().set_after_callback("urDeviceGetInfo",
135+
&after_urDeviceGetInfo_SingleDevice<false>);
117136
sycl::platform Platform = sycl::platform();
118137
sycl::context Context{Platform};
119138

120139
try {
121140
syclext::reserve_virtual_mem(0, sizeof(int), Context);
141+
FAIL() << "No exception thrown.";
122142
} catch (sycl::exception &e) {
123143
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
124144
EXPECT_STREQ(e.what(),
@@ -130,15 +150,16 @@ TEST(VirtualMemoryMultipleDevices, ReserveVirtualMemoryRange) {
130150
TEST(VirtualMemoryMultipleDevices, ReservePhysicalMemory) {
131151

132152
sycl::unittest::UrMock<> Mock;
133-
mock::getCallbacks().set_replace_callback("urDeviceGet", &setup_urDeviceGet);
134-
mock::getCallbacks().set_replace_callback("urDeviceGetInfo",
135-
&setup_urDeviceGetInfo);
153+
mock::getCallbacks().set_after_callback("urDeviceGet", &setup_urDeviceGet);
154+
mock::getCallbacks().set_after_callback("urDeviceGetInfo",
155+
&after_urDeviceGetInfo_AllDevices<false>);
136156
sycl::platform Platform = sycl::platform();
137157
sycl::context Context{Platform};
138158

139159
try {
140-
syclext::physical_mem PhysicalMem{Context.get_devices().front(), Context,
160+
syclext::physical_mem PhysicalMem{Context.get_devices()[0], Context,
141161
sizeof(int)};
162+
FAIL() << "No exception thrown.";
142163
} catch (sycl::exception &e) {
143164
EXPECT_EQ(e.code(), sycl::errc::feature_not_supported);
144165
EXPECT_STREQ(e.what(),

0 commit comments

Comments
 (0)