EXSWHTEC-24 - Fix issues and refactor code in Stream Management tests (#2916)

- Fix bug in calculation of normal priority in Unit_hipStreamGetPriority_StreamsWithCUMask tests
- Delete duplicate test Unit_hipStreamGetPriority_InvalidPriorityPointer
- Separate Unit_hipStreamAddCallback_ParamTst into positive and negative test
- Remove Unit_hipStreamDestroy_Negative_DoubleDestroy test for Nvidia devices due to error
Этот коммит содержится в:
nives-vukovic
2022-09-26 07:33:18 +02:00
коммит произвёл GitHub
родитель 26d316a250
Коммит 968e21cd1f
2 изменённых файлов: 40 добавлений и 39 удалений
+39 -28
Просмотреть файл
@@ -161,16 +161,52 @@ using hipStreaAddCallbackTest::Callback_ChkStreamValue;
/* /*
* Validates parameter list of hipStreamAddCallback. * Validates parameter list of hipStreamAddCallback.
*/ */
TEST_CASE("Unit_hipStreamAddCallback_ParamTst") { TEST_CASE("Unit_hipStreamAddCallback_ParamTst_Positive") {
hipStream_t mystream; hipStream_t mystream;
HIP_CHECK(hipStreamCreate(&mystream)); HIP_CHECK(hipStreamCreate(&mystream));
// Scenario1 // Scenario1
SECTION("callback is nullptr") { SECTION("userData pointer value validation") {
gstream = mystream;
gusrptr = ptr0xff;
gPassed = true;
gcbDone = false;
HIP_CHECK(hipStreamAddCallback(mystream, Callback_ChkUsrdataPtr,
gusrptr, 0));
while (!gcbDone) {
std::this_thread::sleep_for(std::chrono::microseconds(100000)); // Sleep for 100 ms
}
REQUIRE(gPassed);
}
// Scenario2
SECTION("stream value validation") {
gstream = mystream;
gPassed = true;
gcbDone = false;
HIP_CHECK(hipStreamAddCallback(mystream, Callback_ChkStreamValue,
nullptr, 0));
while (!gcbDone) {
std::this_thread::sleep_for(std::chrono::microseconds(100000)); // Sleep for 100 ms
}
REQUIRE(gPassed);
}
HIP_CHECK(hipStreamDestroy(mystream));
}
/*
* Negative tests for validation of hipStreamAddCallback parameter list.
*/
TEST_CASE("Unit_hipStreamAddCallback_ParamTst_Negative") {
hipStream_t mystream;
HIP_CHECK(hipStreamCreate(&mystream));
// Scenario1
SECTION("callback is nullptr for non-default stream") {
REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(mystream, nullptr, REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(mystream, nullptr,
nullptr, 0)); nullptr, 0));
} }
// Scenario2 // Scenario2
SECTION("stream is default") { SECTION("callback is nullptr for default stream") {
REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(0, nullptr, REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(0, nullptr,
nullptr, 0)); nullptr, 0));
} }
@@ -184,31 +220,6 @@ TEST_CASE("Unit_hipStreamAddCallback_ParamTst") {
REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(0, Callback, REQUIRE_FALSE(hipSuccess == hipStreamAddCallback(0, Callback,
nullptr, 10)); nullptr, 10));
} }
// Scenario5
SECTION("userData pointer value validation") {
gstream = mystream;
gusrptr = ptr0xff;
gPassed = true;
gcbDone = false;
HIP_CHECK(hipStreamAddCallback(mystream, Callback_ChkUsrdataPtr,
gusrptr, 0));
while (!gcbDone) {
std::this_thread::sleep_for(std::chrono::microseconds(100000)); // Sleep for 100 ms
}
REQUIRE_FALSE(!gPassed);
}
// Scenario6
SECTION("stream value validation") {
gstream = mystream;
gPassed = true;
gcbDone = false;
HIP_CHECK(hipStreamAddCallback(mystream, Callback_ChkStreamValue,
nullptr, 0));
while (!gcbDone) {
std::this_thread::sleep_for(std::chrono::microseconds(100000)); // Sleep for 100 ms
}
REQUIRE_FALSE(!gPassed);
}
HIP_CHECK(hipStreamDestroy(mystream)); HIP_CHECK(hipStreamDestroy(mystream));
} }
+1 -11
Просмотреть файл
@@ -29,16 +29,6 @@ priority should be clamped to the priority range.
#include <hip_test_common.hh> #include <hip_test_common.hh>
/**
* Check the error returned when an invalid pointer to a priority is used.
*/
TEST_CASE("Unit_hipStreamGetPriority_InvalidPriorityPointer") {
hipStream_t stream{};
HIP_CHECK(hipStreamCreate(&stream));
HIP_CHECK_ERROR(hipStreamGetPriority(stream, nullptr), hipErrorInvalidValue);
HIP_CHECK(hipStreamDestroy(stream));
}
/** /**
* Create stream and check priority. * Create stream and check priority.
*/ */
@@ -145,7 +135,7 @@ TEST_CASE("Unit_hipStreamGetPriority_StreamsWithCUMask") {
int priority_high = 0; int priority_high = 0;
// Test is to get the Stream Priority Range // Test is to get the Stream Priority Range
HIP_CHECK(hipDeviceGetStreamPriorityRange(&priority_low, &priority_high)); HIP_CHECK(hipDeviceGetStreamPriorityRange(&priority_low, &priority_high));
priority_normal = priority_low + priority_high; priority_normal = (priority_low + priority_high) / 2;
// Check if priorities are indeed supported // Check if priorities are indeed supported
REQUIRE_FALSE(priority_low == priority_high); REQUIRE_FALSE(priority_low == priority_high);
// Creating a stream with hipExtStreamCreateWithCUMask and checking // Creating a stream with hipExtStreamCreateWithCUMask and checking