EXSWCPHIPT-138: Update hipHostRegister flag testing (#2835)

[ROCm/hip-tests commit: 2f26a24a5d]
This commit is contained in:
Fábio
2022-08-03 12:20:07 +01:00
committed by GitHub
orang tua dac2cef7ac
melakukan 12e6546640
@@ -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