Added initial set of tests for the cl_khr_semaphore extension (#1428)

* Added initial set of tests for the cl_khr_semaphore extension

* Fixes to address first round of reviews for cl_khr_semaphore tests
This commit is contained in:
Marco Cattani
2022-11-15 17:18:43 +00:00
committed by GitHub
parent fc4260bdae
commit 18dbf2f1c1
6 changed files with 1249 additions and 0 deletions

View File

@@ -153,6 +153,21 @@ static int vlog_win32(const char *format, ...);
} \
} while (0)
#define test_assert_event_status(comparison_operator, event) \
do \
{ \
cl_int status; \
cl_int err = clGetEventInfo(event, CL_EVENT_COMMAND_EXECUTION_STATUS, \
sizeof(status), &status, nullptr); \
test_error(err, "Could not get " #event " info"); \
test_assert_error(status comparison_operator CL_COMPLETE, \
"Unexpected status for " #event); \
} while (false)
#define test_assert_event_inprogress(event) test_assert_event_status(>, event)
#define test_assert_event_terminated(event) test_assert_event_status(<, event)
#define test_assert_event_complete(event) test_assert_event_status(==, event)
extern const char *IGetErrorString(int clErrorCode);
extern float Ulp_Error_Half(cl_half test, float reference);

View File

@@ -0,0 +1,36 @@
//
// Copyright (c) 2022 The Khronos Group Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#ifndef _extensionHelpers_h
#define _extensionHelpers_h
// Load a specific function that is part of an OpenCL extension
#define GET_PFN(device, fn_name) \
fn_name##_fn fn_name = reinterpret_cast<fn_name##_fn>( \
clGetExtensionFunctionAddressForPlatform( \
getPlatformFromDevice(device), #fn_name)); \
do \
{ \
if (!fn_name) \
{ \
log_error( \
"ERROR: Failed to get function pointer for %s at %s:%d\n", \
#fn_name, __FILE__, __LINE__); \
return TEST_FAIL; \
} \
} while (false)
#endif // _extensionHelpers_h