3a9bf2e9f6
* SWDEV-546351 - Added test cases for hipGetDriverEntryPoint api * SWDEV-546351 - Added test cases for hipGetDriverEntryPoint api * SWDEV-546351 - Added test cases for hipGetDriverEntryPoint api * SWDEV-546351 : Added test cases for hipGetDriverEntryPoint api * addressed review comments Added non-zero check --------- Co-authored-by: Anavena Venkatesh <Anavena.Venkatesh@amd.com> Co-authored-by: jainprad <92369414+jainprad@users.noreply.github.com>
209 строки
6.6 KiB
C++
209 строки
6.6 KiB
C++
/*
|
|
Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANNTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
*/
|
|
|
|
#include <hip_test_common.hh>
|
|
|
|
/**
|
|
* hipError_t hipGetDriverEntryPoint(const char* symbol, void** funcPtr, unsigned long long flags,
|
|
hipDriverEntryPointQueryResult* driverStatus);
|
|
* Gets function pointer of a request HIP API
|
|
*
|
|
* @param [in] symbol The API base name
|
|
* @param [out] funcPtr Pinter to the requested function
|
|
* @param [in] flags Flags for the search
|
|
* @param [out] driverStatus Optional returned status of the search
|
|
*
|
|
* @returns #hipSuccess, #hipErrorInvalidValue
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Test Description
|
|
* ------------------------
|
|
* - This will perfrom the funtionality testing of hipGetDriverEntryPoint api
|
|
* Test source
|
|
* ------------------------
|
|
* - unit/device/hipGetDriverEntryPoint.cc
|
|
* Test requirements
|
|
* ------------------------
|
|
* - HIP_VERSION >= 7.1
|
|
*/
|
|
TEST_CASE("Unit_hipGetDriverEntryPoint_Positive") {
|
|
void* funcPtr = nullptr;
|
|
hipDriverEntryPointQueryResult status;
|
|
|
|
SECTION("hipEnableDefault search flag") {
|
|
HIP_CHECK(hipGetDriverEntryPoint("hipGetDeviceCount", &funcPtr, hipEnableDefault, &status));
|
|
}
|
|
|
|
SECTION("hipEnableLegacyStream search flag") {
|
|
HIP_CHECK(
|
|
hipGetDriverEntryPoint("hipGetDeviceCount", &funcPtr, hipEnableLegacyStream, &status));
|
|
}
|
|
|
|
SECTION("hipEnablePerThreadDefaultStream search flag") {
|
|
HIP_CHECK(hipGetDriverEntryPoint("hipGetDeviceCount", &funcPtr, hipEnablePerThreadDefaultStream,
|
|
&status));
|
|
}
|
|
|
|
REQUIRE(status == hipDriverEntryPointSuccess);
|
|
|
|
hipError_t (*hipGetDeviceCount_ptr)(int*) = (hipError_t(*)(int*))funcPtr;
|
|
int countFuncPtr;
|
|
HIP_CHECK(hipGetDeviceCount_ptr(&countFuncPtr));
|
|
|
|
int count;
|
|
HIP_CHECK(hipGetDeviceCount(&count));
|
|
|
|
REQUIRE(count > 0);
|
|
REQUIRE(countFuncPtr == count);
|
|
}
|
|
|
|
/**
|
|
* Test Description
|
|
* ------------------------
|
|
* - This tests checks hipGetDriverEntryPoint api with negative parameters
|
|
* # symbol is empty
|
|
* # funcPtr pointer is null
|
|
* # Invalid flag
|
|
* Test source
|
|
* ------------------------
|
|
* - unit/device/hipGetDriverEntryPoint.cc
|
|
* Test requirements
|
|
* ------------------------
|
|
* - HIP_VERSION >= 7.1
|
|
*/
|
|
|
|
TEST_CASE("Unit_hipGetDriverEntryPoint_Negative") {
|
|
void* funcPtr = nullptr;
|
|
hipDriverEntryPointQueryResult status;
|
|
|
|
SECTION("Empty string as symbol") {
|
|
HIP_CHECK_ERROR(hipGetDriverEntryPoint("", &funcPtr, hipEnableDefault, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
|
|
SECTION("funtion pointer is nullptr") {
|
|
HIP_CHECK_ERROR(hipGetDriverEntryPoint("hipGetDeviceCount", nullptr, hipEnableDefault, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
|
|
SECTION("Invalid flag") {
|
|
HIP_CHECK_ERROR(hipGetDriverEntryPoint("hipGetDeviceCount", &funcPtr, -1, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* hipError_t hipGetDriverEntryPoint_spt(const char* symbol, void** funcPtr, unsigned long long
|
|
flags, hipDriverEntryPointQueryResult* driverStatus);
|
|
* Gets function pointer of a request HIP API
|
|
*
|
|
* @param [in] symbol The API base name
|
|
* @param [out] funcPtr Pinter to the requested function
|
|
* @param [in] flags Flags for the search
|
|
* @param [out] driverStatus Optional returned status of the search
|
|
*
|
|
* @returns #hipSuccess, #hipErrorInvalidValue
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Test Description
|
|
* ------------------------
|
|
* - This will perfrom the funtionality testing og hipGetDriverEntryPoint_spt api
|
|
* Test source
|
|
* ------------------------
|
|
* - unit/device/hipGetDriverEntryPoint.cc
|
|
* Test requirements
|
|
* ------------------------
|
|
* - HIP_VERSION >= 7.1
|
|
*/
|
|
|
|
TEST_CASE("Unit_hipGetDriverEntryPoint_spt_Positive") {
|
|
void* funcPtr = nullptr;
|
|
hipDriverEntryPointQueryResult status;
|
|
|
|
SECTION("hipEnableDefault search flag") {
|
|
HIP_CHECK(hipGetDriverEntryPoint_spt("hipGetDeviceCount", &funcPtr, hipEnableDefault, &status));
|
|
}
|
|
|
|
SECTION("hipEnableLegacyStream search flag") {
|
|
HIP_CHECK(
|
|
hipGetDriverEntryPoint_spt("hipGetDeviceCount", &funcPtr, hipEnableLegacyStream, &status));
|
|
}
|
|
|
|
SECTION("hipEnablePerThreadDefaultStream search flag") {
|
|
HIP_CHECK(hipGetDriverEntryPoint_spt("hipGetDeviceCount", &funcPtr,
|
|
hipEnablePerThreadDefaultStream, &status));
|
|
}
|
|
|
|
REQUIRE(status == hipDriverEntryPointSuccess);
|
|
|
|
hipError_t (*hipGetDeviceCount_ptr)(int*) = (hipError_t(*)(int*))funcPtr;
|
|
int countFuncPtr;
|
|
HIP_CHECK(hipGetDeviceCount_ptr(&countFuncPtr));
|
|
|
|
int count;
|
|
HIP_CHECK(hipGetDeviceCount(&count));
|
|
|
|
REQUIRE(count > 0);
|
|
REQUIRE(countFuncPtr == count);
|
|
}
|
|
|
|
/**
|
|
* Test Description
|
|
* ------------------------
|
|
* - This tests checks hipGetDriverEntryPoint_spt api with negative parameters
|
|
* # symbol is empty
|
|
* # funcPtr pointer is null
|
|
* # Invalid flag
|
|
* Test source
|
|
* ------------------------
|
|
* - unit/device/hipGetDriverEntryPoint.cc
|
|
* Test requirements
|
|
* ------------------------
|
|
* - HIP_VERSION >= 7.1
|
|
*/
|
|
|
|
TEST_CASE("Unit_hipGetDriverEntryPoint_spt_Negative") {
|
|
void* funcPtr = nullptr;
|
|
hipDriverEntryPointQueryResult status;
|
|
|
|
SECTION("Empty string as symbol") {
|
|
HIP_CHECK_ERROR(hipGetDriverEntryPoint_spt("", &funcPtr, hipEnableDefault, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
|
|
SECTION("funtion pointer is nullptr") {
|
|
HIP_CHECK_ERROR(
|
|
hipGetDriverEntryPoint_spt("hipGetDeviceCount", nullptr, hipEnableDefault, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
|
|
SECTION("Invalid flag") {
|
|
HIP_CHECK_ERROR(hipGetDriverEntryPoint_spt("hipGetDeviceCount", &funcPtr, -1, &status),
|
|
hipErrorInvalidValue);
|
|
}
|
|
}
|
|
/**
|
|
* End doxygen group DeviceTest.
|
|
* @}
|
|
*/
|