1 // Copyright (C) 2018 Intel Corporation
3 // SPDX-License-Identifier: Apache-2.0
6 #include <gtest/gtest.h>
7 #include <cpp_interfaces/ie_executor_manager.hpp>
8 #include <ie_device.hpp>
10 using namespace ::testing;
12 using namespace InferenceEngine;
13 using namespace InferenceEngine::details;
15 class ExecutorManagerTests : public ::testing::Test {
17 ExecutorManagerImpl _manager;
20 TEST_F(ExecutorManagerTests, canCreateSingleExecutorManager) {
21 ExecutorManager *executorManager1 = ExecutorManager::getInstance();
23 ExecutorManager *executorManager2 = ExecutorManager::getInstance();
25 ASSERT_EQ(executorManager1, executorManager2);
28 TEST_F(ExecutorManagerTests, createDifferentExecutorsForDifferentDevices) {
29 auto device1 = TargetDeviceInfo::name(TargetDevice::eCPU);
30 auto device2 = TargetDeviceInfo::name(TargetDevice::eGPU);
32 auto executor1 = _manager.getExecutor(device1);
33 auto executor2 = _manager.getExecutor(device2);
35 ASSERT_NE(executor1, executor2);
36 ASSERT_EQ(2, _manager.getExecutorsNumber());
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);
45 auto executor = _manager.getExecutor(device2);
47 ASSERT_EQ(executor, executor2);
48 ASSERT_EQ(2, _manager.getExecutorsNumber());