Removed similar behaviour tests (#2528)

This commit is contained in:
Anton Pankratv 2020-10-05 12:21:03 +03:00 committed by GitHub
parent 605cf75901
commit b21d0fe978
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -52,48 +52,6 @@ TEST_P(CallbackTests, canCallSyncAndAsyncWithCompletionCallback) {
ASSERT_TRUE(isCalled);
}
// test that can wait all callbacks on dtor
TEST_P(CallbackTests, canStartAsyncInsideCompletionCallback) {
// Skip test according to plugin specific disabledTestPatterns() (if any)
SKIP_IF_CURRENT_TEST_IS_DISABLED()
struct TestUserData {
bool startAsyncOK = false;
int numIsCalled = 0;
};
TestUserData data;
// Create CNNNetwork from ngrpah::Function
InferenceEngine::CNNNetwork cnnNet(function);
// Load CNNNetwork to target plugins
auto execNet = ie->LoadNetwork(cnnNet, targetDevice, configuration);
// Create InferRequest
InferenceEngine::InferRequest req = execNet.CreateInferRequest();
req.SetCompletionCallback<std::function<void(InferenceEngine::InferRequest, InferenceEngine::StatusCode)>>(
[&](InferenceEngine::IInferRequest::Ptr request, InferenceEngine::StatusCode status) {
// HSD_1805940120: Wait on starting callback return HDDL_ERROR_INVAL_TASK_HANDLE
if (targetDevice != CommonTestUtils::DEVICE_HDDL) {
ASSERT_EQ(static_cast<int>(InferenceEngine::StatusCode::OK), status);
}
data.numIsCalled++;
// WA for deadlock
request->SetCompletionCallback(nullptr);
InferenceEngine::StatusCode sts = request->StartAsync(nullptr);
if (sts == InferenceEngine::StatusCode::OK) {
data.startAsyncOK = true;
}
});
req.StartAsync();
InferenceEngine::ResponseDesc responseWait;
InferenceEngine::StatusCode waitStatus = req.Wait(InferenceEngine::IInferRequest::WaitMode::RESULT_READY);
ASSERT_EQ(static_cast<int>(InferenceEngine::StatusCode::OK), waitStatus) << responseWait.msg;
ASSERT_EQ(1, data.numIsCalled);
ASSERT_TRUE(data.startAsyncOK);
}
// test that can wait all callbacks on dtor
TEST_P(CallbackTests, canStartSeveralAsyncInsideCompletionCallbackWithSafeDtor) {
// Skip test according to plugin specific disabledTestPatterns() (if any)
@ -118,7 +76,7 @@ TEST_P(CallbackTests, canStartSeveralAsyncInsideCompletionCallbackWithSafeDtor)
data.promise.set_value(status);
} else {
if (data.numIter.fetch_add(1) != NUM_ITER) {
InferenceEngine::StatusCode sts = request->StartAsync(nullptr);
auto sts = request->StartAsync(nullptr);
if (sts != InferenceEngine::StatusCode::OK) {
data.promise.set_value(sts);
}
@ -156,114 +114,6 @@ TEST_P(CallbackTests, inferDoesNotCallCompletionCallback) {
ASSERT_FALSE(isCalled);
}
TEST_P(CallbackTests, canStartAsyncInsideCompletionCallbackNoSafeDtor) {
SKIP_IF_CURRENT_TEST_IS_DISABLED()
struct TestUserData {
int numIter = 0;
bool startAsyncOK = true;
bool getDataOK = true;
std::atomic<int> numIsCalled{0};
std::mutex mutex_block_emulation;
std::condition_variable cv_block_emulation;
bool isBlocked = true;
TestUserData(int i) : numIter(i) {}
};
TestUserData data(1);
// Skip test according to plugin specific disabledTestPatterns() (if any)
SKIP_IF_CURRENT_TEST_IS_DISABLED()
// Create CNNNetwork from ngrpah::Function
InferenceEngine::CNNNetwork cnnNet(function);
// Load CNNNetwork to target plugins
auto execNet = ie->LoadNetwork(cnnNet, targetDevice, configuration);
// Create InferRequest
InferenceEngine::InferRequest req = execNet.CreateInferRequest();
req.SetCompletionCallback<std::function<void(InferenceEngine::InferRequest, InferenceEngine::StatusCode)>>(
[&](InferenceEngine::IInferRequest::Ptr request, InferenceEngine::StatusCode status) {
// WA for deadlock
if (!--data.numIter) {
request->SetCompletionCallback(nullptr);
}
InferenceEngine::StatusCode sts = request->StartAsync(nullptr);
if (sts != InferenceEngine::StatusCode::OK) {
data.startAsyncOK = false;
}
data.numIsCalled++;
if (!data.numIter) {
data.isBlocked = false;
data.cv_block_emulation.notify_one();
}
});
req.StartAsync();
InferenceEngine::ResponseDesc responseWait;
InferenceEngine::StatusCode waitStatus = req.Wait(InferenceEngine::IInferRequest::WaitMode::RESULT_READY);
// intentionally block until notification from callback
std::unique_lock<std::mutex> lock(data.mutex_block_emulation);
data.cv_block_emulation.wait(lock, [&]() { return !data.isBlocked; });
ASSERT_EQ(static_cast<int>(InferenceEngine::StatusCode::OK), waitStatus);
ASSERT_EQ(1, data.numIsCalled);
ASSERT_TRUE(data.startAsyncOK);
ASSERT_TRUE(data.getDataOK);
}
TEST_P(CallbackTests, canStartSeveralAsyncInsideCompletionCallbackNoSafeDtor) {
SKIP_IF_CURRENT_TEST_IS_DISABLED()
struct TestUserData {
int numIter = 0;
bool startAsyncOK = true;
bool getDataOK = true;
std::atomic<int> numIsCalled{0};
std::mutex mutex_block_emulation;
std::condition_variable cv_block_emulation;
bool isBlocked = true;
TestUserData(int i) : numIter(i) {}
};
TestUserData data(10);
// Skip test according to plugin specific disabledTestPatterns() (if any)
SKIP_IF_CURRENT_TEST_IS_DISABLED()
// Create CNNNetwork from ngrpah::Function
InferenceEngine::CNNNetwork cnnNet(function);
// Load CNNNetwork to target plugins
auto execNet = ie->LoadNetwork(cnnNet, targetDevice, configuration);
// Create InferRequest
InferenceEngine::InferRequest req = execNet.CreateInferRequest();
req.SetCompletionCallback<std::function<void(InferenceEngine::InferRequest, InferenceEngine::StatusCode)>>(
[&](InferenceEngine::IInferRequest::Ptr request, InferenceEngine::StatusCode status) {
// WA for deadlock
if (!--data.numIter) {
request->SetCompletionCallback(nullptr);
}
InferenceEngine::StatusCode sts = request->StartAsync(nullptr);
if (sts != InferenceEngine::StatusCode::OK) {
data.startAsyncOK = false;
}
data.numIsCalled++;
if (!data.numIter) {
data.isBlocked = false;
data.cv_block_emulation.notify_one();
}
});
req.StartAsync();
InferenceEngine::ResponseDesc responseWait;
InferenceEngine::StatusCode waitStatus = req.Wait(InferenceEngine::IInferRequest::WaitMode::RESULT_READY);
// intentionally block until notification from callback
std::unique_lock<std::mutex> lock(data.mutex_block_emulation);
data.cv_block_emulation.wait(lock, [&]() { return !data.isBlocked; });
ASSERT_EQ(static_cast<int>(InferenceEngine::StatusCode::OK), waitStatus);
ASSERT_EQ(10, data.numIsCalled);
ASSERT_TRUE(data.startAsyncOK);
ASSERT_TRUE(data.getDataOK);
}
TEST_P(CallbackTests, returnGeneralErrorIfCallbackThrowException) {
// Skip test according to plugin specific disabledTestPatterns() (if any)
SKIP_IF_CURRENT_TEST_IS_DISABLED()