1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/TensorHandleFactoryRegistry.hpp> 7*89c4ff92SAndroid Build Coastguard Worker #include <reference/RefBackend.hpp> 8*89c4ff92SAndroid Build Coastguard Worker #include <reference/RefTensorHandleFactory.hpp> 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker #include <armnn/backends/WorkloadFactory.hpp> 11*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker using namespace armnn; 14*89c4ff92SAndroid Build Coastguard Worker 15*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("RefBackendTests") 16*89c4ff92SAndroid Build Coastguard Worker { 17*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("RefRegisterTensorHandleFactoriesMatchingImportFactoryId") 18*89c4ff92SAndroid Build Coastguard Worker { 19*89c4ff92SAndroid Build Coastguard Worker auto refBackend = std::make_unique<RefBackend>(); 20*89c4ff92SAndroid Build Coastguard Worker TensorHandleFactoryRegistry registry; 21*89c4ff92SAndroid Build Coastguard Worker refBackend->RegisterTensorHandleFactories(registry); 22*89c4ff92SAndroid Build Coastguard Worker 23*89c4ff92SAndroid Build Coastguard Worker // When calling RegisterTensorHandleFactories, CopyAndImportFactoryPair is registered 24*89c4ff92SAndroid Build Coastguard Worker // Get matching import factory id correctly 25*89c4ff92SAndroid Build Coastguard Worker CHECK((registry.GetMatchingImportFactoryId(RefTensorHandleFactory::GetIdStatic()) == 26*89c4ff92SAndroid Build Coastguard Worker RefTensorHandleFactory::GetIdStatic())); 27*89c4ff92SAndroid Build Coastguard Worker } 28*89c4ff92SAndroid Build Coastguard Worker 29*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("RefCreateWorkloadFactoryMatchingImportFactoryId") 30*89c4ff92SAndroid Build Coastguard Worker { 31*89c4ff92SAndroid Build Coastguard Worker auto refBackend = std::make_unique<RefBackend>(); 32*89c4ff92SAndroid Build Coastguard Worker TensorHandleFactoryRegistry registry; 33*89c4ff92SAndroid Build Coastguard Worker refBackend->CreateWorkloadFactory(registry); 34*89c4ff92SAndroid Build Coastguard Worker 35*89c4ff92SAndroid Build Coastguard Worker // When calling CreateWorkloadFactory, CopyAndImportFactoryPair is registered 36*89c4ff92SAndroid Build Coastguard Worker // Get matching import factory id correctly 37*89c4ff92SAndroid Build Coastguard Worker CHECK((registry.GetMatchingImportFactoryId(RefTensorHandleFactory::GetIdStatic()) == 38*89c4ff92SAndroid Build Coastguard Worker RefTensorHandleFactory::GetIdStatic())); 39*89c4ff92SAndroid Build Coastguard Worker } 40*89c4ff92SAndroid Build Coastguard Worker } 41