Skip to content

Commit 1bc7a96

Browse files
committed
Hopefully fix more CI issues.
1 parent ddd721f commit 1bc7a96

File tree

7 files changed

+31
-29
lines changed

7 files changed

+31
-29
lines changed

scripts/templates/mockddi.cpp.mako

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,25 @@ namespace driver
9595
*ppMem = mock::createDummyHandle<void *>(size);
9696
%elif re.search(r"USMPitchedAllocExp$", fname):
9797
*ppMem = mock::createDummyHandle<void *>(widthInBytes * height);
98-
%else:
99-
%if fname == 'urAdapterGet' or fname == 'urDeviceGet' or fname == 'urPlatformGet':
98+
## We need a special case for USM free since it doesn't have the handle release tag
99+
%elif re.search(r"USMFree$", fname):
100+
mock::releaseDummyHandle(pMem);
101+
## adapter, platform and device have special lifetime considerations
102+
%elif 'urAdapter' in fname or 'urDevice' in fname or 'urPlatform' in fname:
103+
%if re.match(r"ur(.*)Get$", fname):
100104
<%
101105
num_param = th.find_param_name(".*pNum.*", n, tags, obj)
106+
object = re.match(r"ur(.*)Get", fname).group(1)
107+
out_param = "ph" + object + "s"
102108
%>
103109
if(${num_param}) {
104110
*${num_param} = 1;
105111
}
112+
if(${out_param}) {
113+
*${out_param} = d_context.${object.lower()};
114+
}
106115
%endif
116+
%else:
107117
%for item in epilogue:
108118
%if item['release']:
109119
mock::releaseDummyHandle(${item['name']});

source/adapters/mock/ur_mock.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ class __urdlllocal context_t {
2525
ur_dditable_t urDdiTable = {};
2626
context_t();
2727
~context_t() = default;
28+
29+
ur_adapter_handle_t adapter = reinterpret_cast<ur_adapter_handle_t>(1);
30+
ur_device_handle_t device = reinterpret_cast<ur_device_handle_t>(2);
31+
ur_platform_handle_t platform = reinterpret_cast<ur_platform_handle_t>(3);
2832
};
2933

3034
extern context_t d_context;

source/adapters/mock/ur_mockddi.cpp

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ __urdlllocal ur_result_t UR_APICALL urAdapterGet(
5050
if (pNumAdapters) {
5151
*pNumAdapters = 1;
5252
}
53-
// optional output handle
5453
if (phAdapters) {
55-
*phAdapters = mock::createDummyHandle<ur_adapter_handle_t>();
54+
*phAdapters = d_context.adapter;
5655
}
5756
result = UR_RESULT_SUCCESS;
5857
}
@@ -96,7 +95,6 @@ __urdlllocal ur_result_t UR_APICALL urAdapterRelease(
9695
result = replaceCallback(&params);
9796
} else {
9897

99-
mock::releaseDummyHandle(hAdapter);
10098
result = UR_RESULT_SUCCESS;
10199
}
102100

@@ -139,7 +137,6 @@ __urdlllocal ur_result_t UR_APICALL urAdapterRetain(
139137
result = replaceCallback(&params);
140138
} else {
141139

142-
mock::retainDummyHandle(hAdapter);
143140
result = UR_RESULT_SUCCESS;
144141
}
145142

@@ -301,9 +298,8 @@ __urdlllocal ur_result_t UR_APICALL urPlatformGet(
301298
if (pNumPlatforms) {
302299
*pNumPlatforms = 1;
303300
}
304-
// optional output handle
305301
if (phPlatforms) {
306-
*phPlatforms = mock::createDummyHandle<ur_platform_handle_t>();
302+
*phPlatforms = d_context.platform;
307303
}
308304
result = UR_RESULT_SUCCESS;
309305
}
@@ -609,9 +605,8 @@ __urdlllocal ur_result_t UR_APICALL urDeviceGet(
609605
if (pNumDevices) {
610606
*pNumDevices = 1;
611607
}
612-
// optional output handle
613608
if (phDevices) {
614-
*phDevices = mock::createDummyHandle<ur_device_handle_t>();
609+
*phDevices = d_context.device;
615610
}
616611
result = UR_RESULT_SUCCESS;
617612
}
@@ -710,7 +705,6 @@ __urdlllocal ur_result_t UR_APICALL urDeviceRetain(
710705
result = replaceCallback(&params);
711706
} else {
712707

713-
mock::retainDummyHandle(hDevice);
714708
result = UR_RESULT_SUCCESS;
715709
}
716710

@@ -754,7 +748,6 @@ __urdlllocal ur_result_t UR_APICALL urDeviceRelease(
754748
result = replaceCallback(&params);
755749
} else {
756750

757-
mock::releaseDummyHandle(hDevice);
758751
result = UR_RESULT_SUCCESS;
759752
}
760753

@@ -808,10 +801,6 @@ __urdlllocal ur_result_t UR_APICALL urDevicePartition(
808801
result = replaceCallback(&params);
809802
} else {
810803

811-
// optional output handle
812-
if (phSubDevices) {
813-
*phSubDevices = mock::createDummyHandle<ur_device_handle_t>();
814-
}
815804
result = UR_RESULT_SUCCESS;
816805
}
817806

@@ -2355,6 +2344,7 @@ __urdlllocal ur_result_t UR_APICALL urUSMFree(
23552344
result = replaceCallback(&params);
23562345
} else {
23572346

2347+
mock::releaseDummyHandle(pMem);
23582348
result = UR_RESULT_SUCCESS;
23592349
}
23602350

source/loader/ur_lib.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ struct ur_loader_config_handle_t_ {
4848
std::set<std::string> &getEnabledLayerNames() { return enabledLayers; }
4949

5050
codeloc_data codelocData;
51-
bool enableMock;
51+
bool enableMock = false;
5252
};
5353

5454
namespace ur_lib {

test/conformance/source/environment.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ uur::PlatformEnvironment::PlatformEnvironment(int argc, char **argv)
6565

6666
ur_loader_config_handle_t config;
6767
if (urLoaderConfigCreate(&config) == UR_RESULT_SUCCESS) {
68-
if (urLoaderConfigEnableLayer(config, "UR_LAYER_FULL_VALIDATION")) {
68+
if (urLoaderConfigEnableLayer(config, "UR_LAYER_FULL_VALIDATION") !=
69+
UR_RESULT_SUCCESS) {
6970
urLoaderConfigRelease(config);
7071
error = "Failed to enable validation layer";
7172
return;

test/layers/validation/fixtures.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ inline ur_result_t genericSuccessCallback(void *) { return UR_RESULT_SUCCESS; };
132132

133133
// This returns valid (non-null) handles that we can safely leak.
134134
inline ur_result_t fakeContext_urContextCreate(void *pParams) {
135-
static std::atomic_int handle = 1;
135+
static std::atomic_int handle = 42;
136136
auto params = *static_cast<ur_context_create_params_t *>(pParams);
137137
**params.pphContext = reinterpret_cast<ur_context_handle_t>(handle++);
138138
return UR_RESULT_SUCCESS;

test/mock/mock.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,27 +51,24 @@ TEST(Mock, DefaultBehavior) {
5151
ASSERT_EQ(urDeviceRelease(device), UR_RESULT_SUCCESS);
5252
}
5353

54-
void checkPreInitAdapter(ur_adapter_handle_t adapter) {
55-
ur_adapter_handle_t preInitAdapter =
56-
reinterpret_cast<ur_adapter_handle_t>(0xF00DCAFE);
57-
ASSERT_EQ(adapter, preInitAdapter);
58-
}
59-
6054
ur_result_t beforeUrAdapterGet(void *pParams) {
6155
auto params = reinterpret_cast<ur_adapter_get_params_t *>(pParams);
62-
checkPreInitAdapter(**params->pphAdapters);
56+
ur_adapter_handle_t preInitAdapter =
57+
reinterpret_cast<ur_adapter_handle_t>(uintptr_t(0xF00DCAFE));
58+
EXPECT_EQ(**params->pphAdapters, preInitAdapter);
6359
return UR_RESULT_SUCCESS;
6460
}
6561

6662
ur_result_t replaceUrAdapterGet(void *pParams) {
6763
auto params = reinterpret_cast<ur_adapter_get_params_t *>(pParams);
68-
**params->pphAdapters = reinterpret_cast<ur_adapter_handle_t>(0xDEADBEEF);
64+
**params->pphAdapters =
65+
reinterpret_cast<ur_adapter_handle_t>(uintptr_t(0xDEADBEEF));
6966
return UR_RESULT_SUCCESS;
7067
}
7168

7269
void checkPostInitAdapter(ur_adapter_handle_t adapter) {
7370
ur_adapter_handle_t postInitAdapter =
74-
reinterpret_cast<ur_adapter_handle_t>(0xDEADBEEF);
71+
reinterpret_cast<ur_adapter_handle_t>(uintptr_t(0xDEADBEEF));
7572
ASSERT_EQ(adapter, postInitAdapter);
7673
}
7774

@@ -102,6 +99,6 @@ TEST(Mock, Callbacks) {
10299
mock::getCallbacks().set_after_callback("urAdapterGet", &afterUrAdapterGet);
103100

104101
ur_adapter_handle_t adapter =
105-
reinterpret_cast<ur_adapter_handle_t>(0xF00DCAFE);
102+
reinterpret_cast<ur_adapter_handle_t>(uintptr_t(0xF00DCAFE));
106103
ASSERT_EQ(urAdapterGet(1, &adapter, nullptr), UR_RESULT_SUCCESS);
107104
}

0 commit comments

Comments
 (0)