909380aa4cfd1b135ac20515001223f607e91f51
[platform/upstream/dldt.git] / inference-engine / tests / unit / inference_engine_tests / cpp_interfaces / executor_manager_tests.cpp
1 // Copyright (C) 2018 Intel Corporation
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5
6 #include <gtest/gtest.h>
7 #include <cpp_interfaces/ie_executor_manager.hpp>
8 #include <ie_device.hpp>
9
10 using namespace ::testing;
11 using namespace std;
12 using namespace InferenceEngine;
13 using namespace InferenceEngine::details;
14
15 class ExecutorManagerTests : public ::testing::Test {
16 public:
17     ExecutorManagerImpl _manager;
18 };
19
20 TEST_F(ExecutorManagerTests, canCreateSingleExecutorManager) {
21     ExecutorManager *executorManager1 = ExecutorManager::getInstance();
22
23     ExecutorManager *executorManager2 = ExecutorManager::getInstance();
24
25     ASSERT_EQ(executorManager1, executorManager2);
26 }
27
28 TEST_F(ExecutorManagerTests, createDifferentExecutorsForDifferentDevices) {
29     auto device1 = TargetDeviceInfo::name(TargetDevice::eCPU);
30     auto device2 = TargetDeviceInfo::name(TargetDevice::eGPU);
31
32     auto executor1 = _manager.getExecutor(device1);
33     auto executor2 = _manager.getExecutor(device2);
34
35     ASSERT_NE(executor1, executor2);
36     ASSERT_EQ(2, _manager.getExecutorsNumber());
37 }
38
39 TEST_F(ExecutorManagerTests, returnTheSameExecutorForTheSameDevice) {
40     auto device1 = TargetDeviceInfo::name(TargetDevice::eCPU);
41     auto device2 = TargetDeviceInfo::name(TargetDevice::eGPU);
42     auto executor1 = _manager.getExecutor(device1);
43     auto executor2 = _manager.getExecutor(device2);
44
45     auto executor = _manager.getExecutor(device2);
46
47     ASSERT_EQ(executor, executor2);
48     ASSERT_EQ(2, _manager.getExecutorsNumber());
49 }