@@ -55,7 +55,7 @@ TEST_P(urKernelCreateTest, InvalidKernelName) {
5555
5656using urMultiDeviceKernelCreateTest = uur::urMultiDeviceQueueTest;
5757
58- TEST_F (urMultiDeviceKernelCreateTest, Success ) {
58+ TEST_F (urMultiDeviceKernelCreateTest, WithProgramBuild ) {
5959 constexpr size_t global_offset = 0 ;
6060 constexpr size_t n_dimensions = 1 ;
6161 constexpr size_t global_size = 100 ;
@@ -89,3 +89,44 @@ TEST_F(urMultiDeviceKernelCreateTest, Success) {
8989 ASSERT_SUCCESS (urQueueFinish (queues[i]));
9090 }
9191}
92+
93+ TEST_F (urMultiDeviceKernelCreateTest, WithProgramCompileAndLink) {
94+ constexpr size_t global_offset = 0 ;
95+ constexpr size_t n_dimensions = 1 ;
96+ constexpr size_t global_size = 100 ;
97+ constexpr size_t local_size = 100 ;
98+
99+ auto kernelName =
100+ uur::KernelsEnvironment::instance->GetEntryPointNames (" foo" )[0 ];
101+
102+ std::shared_ptr<std::vector<char >> il_binary;
103+ uur::KernelsEnvironment::instance->LoadSource (" foo" , il_binary);
104+
105+ auto &devices = uur::KernelsEnvironment::instance->devices ;
106+ for (size_t i = 0 ; i < devices.size (); i++) {
107+ uur::raii::Program program;
108+ uur::raii::Kernel kernel;
109+
110+ const ur_program_properties_t properties = {
111+ UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES, nullptr , 0 , nullptr };
112+ ASSERT_SUCCESS (uur::KernelsEnvironment::instance->CreateProgram (
113+ platform, context, devices[i], *il_binary, &properties,
114+ program.ptr ()));
115+
116+ ASSERT_SUCCESS (urProgramCompile (context, program.get (), nullptr ));
117+
118+ uur::raii::Program linked_program;
119+ ASSERT_EQ_RESULT (UR_RESULT_SUCCESS,
120+ urProgramLink (context, 1 , program.ptr (), nullptr ,
121+ linked_program.ptr ()));
122+
123+ ASSERT_SUCCESS (urKernelCreate (linked_program.get (), kernelName.data (),
124+ kernel.ptr ()));
125+
126+ ASSERT_SUCCESS (urEnqueueKernelLaunch (
127+ queues[i], kernel.get (), n_dimensions, &global_offset, &local_size,
128+ &global_size, 0 , nullptr , nullptr ));
129+
130+ ASSERT_SUCCESS (urQueueFinish (queues[i]));
131+ }
132+ }
0 commit comments