EXSWCPHIPT-138: Update hipHostRegister flag testing (#2835)
[ROCm/hip-tests commit: 2f26a24a5d]
This commit is contained in:
@@ -29,6 +29,7 @@ This testfile verifies the following scenarios of hipHostRegister API
|
||||
|
||||
#include <hip_test_common.hh>
|
||||
#include <hip_test_helper.hh>
|
||||
#include "hip/hip_runtime_api.h"
|
||||
|
||||
#define OFFSET 128
|
||||
static constexpr auto LEN{1024 * 1024};
|
||||
@@ -160,6 +161,41 @@ template <typename T> __global__ void fill_kernel(T* dataPtr, T value) {
|
||||
dataPtr[tid] = value;
|
||||
}
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipHostRegister_Flags", "", int, float, double) {
|
||||
#if HT_AMD
|
||||
HipTest::HIP_SKIP_TEST("EXSWCPHIPT-138");
|
||||
return;
|
||||
#else
|
||||
|
||||
size_t sizeBytes = 1 * sizeof(TestType);
|
||||
TestType* hostPtr = reinterpret_cast<TestType*>(malloc(sizeBytes));
|
||||
|
||||
/* Flags aren't used for AMD devices currently */
|
||||
struct FlagType {
|
||||
unsigned int value;
|
||||
bool valid;
|
||||
};
|
||||
|
||||
/* EXSWCPHIPT-29 - 0x08 is hipHostRegisterReadOnly which currently doesn't have a definition in the headers */
|
||||
/* hipHostRegisterIoMemory is a valid flag but requires access to I/O mapped memory to be tested */
|
||||
FlagType flags = GENERATE(
|
||||
FlagType{hipHostRegisterDefault, true}, FlagType{hipHostRegisterPortable, true},
|
||||
FlagType{0x08, true}, FlagType{hipHostRegisterPortable | hipHostRegisterMapped, true},
|
||||
FlagType{hipHostRegisterPortable | hipHostRegisterMapped | 0x08, true}, FlagType{0xF0, false},
|
||||
FlagType{0xFFF2, false}, FlagType{0xFFFFFFFF, false});
|
||||
|
||||
INFO("Testing hipHostRegister flag: " << flags.value);
|
||||
if (flags.valid) {
|
||||
HIP_CHECK(hipHostRegister(hostPtr, sizeBytes, flags.value));
|
||||
HIP_CHECK(hipHostUnregister(hostPtr));
|
||||
} else {
|
||||
HIP_CHECK_ERROR(hipHostRegister(hostPtr, sizeBytes, flags.value), hipErrorInvalidValue);
|
||||
}
|
||||
|
||||
free(hostPtr);
|
||||
#endif
|
||||
}
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipHostRegister_Negative", "", int, float, double) {
|
||||
TestType* hostPtr = nullptr;
|
||||
|
||||
@@ -173,13 +209,6 @@ TEMPLATE_TEST_CASE("Unit_hipHostRegister_Negative", "", int, float, double) {
|
||||
HIP_CHECK_ERROR(hipHostRegister(hostPtr, 0, 0), hipErrorInvalidValue);
|
||||
}
|
||||
|
||||
#if HT_NVIDIA
|
||||
// Flags aren't used for AMD devices currently
|
||||
SECTION("hipHostRegister Negative Test - invalid flag") {
|
||||
HIP_CHECK_ERROR(hipHostRegister(hostPtr, sizeBytes, 0b11111111), hipErrorInvalidValue);
|
||||
}
|
||||
#endif
|
||||
|
||||
size_t devMemAvail{0}, devMemFree{0};
|
||||
HIP_CHECK(hipMemGetInfo(&devMemFree, &devMemAvail));
|
||||
auto hostMemFree = HipTest::getMemoryAmount() /* In MB */ * 1024 * 1024; // In bytes
|
||||
|
||||
Reference in New Issue
Block a user