1 /*
2 * Copyright (C) 2020 Intel Corporation
3 *
4 * SPDX-License-Identifier: MIT
5 *
6 */
7
8 #include "test_api_tracing_common.h"
9
10 using ::testing::Return;
11
12 namespace L0 {
13 namespace ult {
14
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListCreateTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)15 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListCreateTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
16 ze_result_t result;
17 driver_ddiTable.core_ddiTable.CommandList.pfnCreate =
18 [](ze_context_handle_t hContext,
19 ze_device_handle_t hDevice,
20 const ze_command_list_desc_t *desc,
21 ze_command_list_handle_t *phCommandList) { return ZE_RESULT_SUCCESS; };
22 ze_command_list_desc_t desc = {};
23 ze_command_list_handle_t commandList = {};
24
25 prologCbs.CommandList.pfnCreateCb = genericPrologCallbackPtr;
26 epilogCbs.CommandList.pfnCreateCb = genericEpilogCallbackPtr;
27
28 setTracerCallbacksAndEnableTracer();
29
30 result = zeCommandListCreate_Tracing(nullptr, nullptr, &desc, &commandList);
31 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
32 EXPECT_EQ(defaultUserData, 1);
33 }
34
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListCreateImmediateTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)35 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListCreateImmediateTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
36 ze_result_t result;
37 driver_ddiTable.core_ddiTable.CommandList.pfnCreateImmediate =
38 [](ze_context_handle_t hContext,
39 ze_device_handle_t hDevice,
40 const ze_command_queue_desc_t *desc,
41 ze_command_list_handle_t *phCommandList) { return ZE_RESULT_SUCCESS; };
42 ze_command_queue_desc_t desc = {};
43 ze_command_list_handle_t commandList = {};
44
45 prologCbs.CommandList.pfnCreateImmediateCb = genericPrologCallbackPtr;
46 epilogCbs.CommandList.pfnCreateImmediateCb = genericEpilogCallbackPtr;
47
48 setTracerCallbacksAndEnableTracer();
49
50 result = zeCommandListCreateImmediate_Tracing(nullptr, nullptr, &desc, &commandList);
51 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
52 EXPECT_EQ(defaultUserData, 1);
53 }
54
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListDestroyTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)55 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListDestroyTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
56 ze_result_t result;
57 driver_ddiTable.core_ddiTable.CommandList.pfnDestroy =
58 [](ze_command_list_handle_t hCommandList) { return ZE_RESULT_SUCCESS; };
59 prologCbs.CommandList.pfnDestroyCb = genericPrologCallbackPtr;
60 epilogCbs.CommandList.pfnDestroyCb = genericEpilogCallbackPtr;
61
62 setTracerCallbacksAndEnableTracer();
63
64 result = zeCommandListDestroy_Tracing(nullptr);
65 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
66 EXPECT_EQ(defaultUserData, 1);
67 }
68
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListResetTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)69 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListResetTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
70 ze_result_t result;
71 driver_ddiTable.core_ddiTable.CommandList.pfnReset =
72 [](ze_command_list_handle_t hCommandList) { return ZE_RESULT_SUCCESS; };
73 prologCbs.CommandList.pfnResetCb = genericPrologCallbackPtr;
74 epilogCbs.CommandList.pfnResetCb = genericEpilogCallbackPtr;
75
76 setTracerCallbacksAndEnableTracer();
77
78 result = zeCommandListReset_Tracing(nullptr);
79 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
80 EXPECT_EQ(defaultUserData, 1);
81 }
82
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListAppendMemoryPrefetchTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)83 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListAppendMemoryPrefetchTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
84 ze_result_t result;
85 driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryPrefetch =
86 [](ze_command_list_handle_t hCommandList, const void *ptr, size_t size) { return ZE_RESULT_SUCCESS; };
87 prologCbs.CommandList.pfnAppendMemoryPrefetchCb = genericPrologCallbackPtr;
88 epilogCbs.CommandList.pfnAppendMemoryPrefetchCb = genericEpilogCallbackPtr;
89
90 setTracerCallbacksAndEnableTracer();
91
92 result = zeCommandListAppendMemoryPrefetch_Tracing(nullptr, nullptr, 0);
93 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
94 EXPECT_EQ(defaultUserData, 1);
95 }
96
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListCloseTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)97 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListCloseTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
98 ze_result_t result;
99 driver_ddiTable.core_ddiTable.CommandList.pfnClose =
100 [](ze_command_list_handle_t hCommandList) { return ZE_RESULT_SUCCESS; };
101 prologCbs.CommandList.pfnCloseCb = genericPrologCallbackPtr;
102 epilogCbs.CommandList.pfnCloseCb = genericEpilogCallbackPtr;
103
104 setTracerCallbacksAndEnableTracer();
105
106 result = zeCommandListClose_Tracing(nullptr);
107 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
108 EXPECT_EQ(defaultUserData, 1);
109 }
110
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListAppendQueryKernelTimestampsTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)111 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListAppendQueryKernelTimestampsTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
112 ze_result_t result;
113
114 driver_ddiTable.core_ddiTable.CommandList.pfnAppendQueryKernelTimestamps =
115 [](ze_command_list_handle_t hCommandList,
116 uint32_t numEvents,
117 ze_event_handle_t *phEvents,
118 void *dstptr,
119 const size_t *pOffsets,
120 ze_event_handle_t hSignalEvent,
121 uint32_t numWaitEvents,
122 ze_event_handle_t *phWaitEvents) { return ZE_RESULT_SUCCESS; };
123
124 prologCbs.CommandList.pfnAppendQueryKernelTimestampsCb = genericPrologCallbackPtr;
125 epilogCbs.CommandList.pfnAppendQueryKernelTimestampsCb = genericEpilogCallbackPtr;
126
127 setTracerCallbacksAndEnableTracer();
128
129 result = zeCommandListAppendQueryKernelTimestamps_Tracing(nullptr, 1U, nullptr, nullptr, nullptr, nullptr, 1U, nullptr);
130 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
131 EXPECT_EQ(defaultUserData, 1);
132 }
133
TEST_F(zeAPITracingRuntimeTests,WhenCallingCommandListAppendWriteGlobalTimestampTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess)134 TEST_F(zeAPITracingRuntimeTests, WhenCallingCommandListAppendWriteGlobalTimestampTracingWrapperWithOneSetOfPrologEpilogsThenReturnSuccess) {
135 ze_result_t result;
136 driver_ddiTable.core_ddiTable.CommandList.pfnAppendWriteGlobalTimestamp =
137 [](ze_command_list_handle_t hCommandList,
138 uint64_t *dstptr,
139 ze_event_handle_t hSignalEvent,
140 uint32_t numWaitEvents,
141 ze_event_handle_t *phWaitEvents) { return ZE_RESULT_SUCCESS; };
142
143 prologCbs.CommandList.pfnAppendWriteGlobalTimestampCb = genericPrologCallbackPtr;
144 epilogCbs.CommandList.pfnAppendWriteGlobalTimestampCb = genericEpilogCallbackPtr;
145
146 setTracerCallbacksAndEnableTracer();
147
148 result = zeCommandListAppendWriteGlobalTimestamp_Tracing(nullptr, nullptr, nullptr, 1U, nullptr);
149 EXPECT_EQ(ZE_RESULT_SUCCESS, result);
150 EXPECT_EQ(defaultUserData, 1);
151 }
152
153 } // namespace ult
154 } // namespace L0
155