ArmNN
 20.02
BackendRegistryTests.cpp File Reference
#include <armnn/Types.hpp>
#include <armnn/BackendRegistry.hpp>
#include <armnn/backends/IBackendInternal.hpp>
#include <boost/test/unit_test.hpp>

Go to the source code of this file.

Functions

 BOOST_AUTO_TEST_CASE (SwapRegistry)
 
 BOOST_AUTO_TEST_CASE (TestRegistryHelper)
 
 BOOST_AUTO_TEST_CASE (TestDirectCallToRegistry)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/3]

BOOST_AUTO_TEST_CASE ( SwapRegistry  )

Definition at line 37 of file BackendRegistryTests.cpp.

References armnn::BackendRegistryInstance(), helper, and BackendRegistry::Size().

38 {
39  using namespace armnn;
40  auto nFactories = BackendRegistryInstance().Size();
41  {
42  SwapRegistryStorage helper;
43  BOOST_TEST(BackendRegistryInstance().Size() == 0);
44  }
45  BOOST_TEST(BackendRegistryInstance().Size() == nFactories);
46 }
BackendRegistry & BackendRegistryInstance()
Copyright (c) 2020 ARM Limited.
FileOnlyHelperService helper

◆ BOOST_AUTO_TEST_CASE() [2/3]

BOOST_AUTO_TEST_CASE ( TestRegistryHelper  )

Definition at line 48 of file BackendRegistryTests.cpp.

References armnn::BackendRegistryInstance(), BackendRegistry::Deregister(), BackendRegistry::GetFactory(), and helper.

49 {
50  using namespace armnn;
51  SwapRegistryStorage helper;
52 
53  bool called = false;
54 
57  "HelloWorld",
58  [&called]()
59  {
60  called = true;
61  return armnn::IBackendInternalUniquePtr(nullptr);
62  }
63  );
64 
65  // sanity check: the factory has not been called yet
66  BOOST_TEST(called == false);
67 
68  auto factoryFunction = BackendRegistryInstance().GetFactory("HelloWorld");
69 
70  // sanity check: the factory still not called
71  BOOST_TEST(called == false);
72 
73  factoryFunction();
74  BOOST_TEST(called == true);
75  BackendRegistryInstance().Deregister("HelloWorld");
76 }
FactoryFunction GetFactory(const BackendId &id) const
BackendRegistry & BackendRegistryInstance()
Copyright (c) 2020 ARM Limited.
void Deregister(const BackendId &id)
std::unique_ptr< IBackendInternal > IBackendInternalUniquePtr
FileOnlyHelperService helper

◆ BOOST_AUTO_TEST_CASE() [3/3]

BOOST_AUTO_TEST_CASE ( TestDirectCallToRegistry  )

Definition at line 78 of file BackendRegistryTests.cpp.

References armnn::BackendRegistryInstance(), BOOST_AUTO_TEST_SUITE_END(), BackendRegistry::Deregister(), BackendRegistry::GetFactory(), helper, and BackendRegistry::Register().

79 {
80  using namespace armnn;
81  SwapRegistryStorage helper;
82 
83  bool called = false;
85  "HelloWorld",
86  [&called]()
87  {
88  called = true;
89  return armnn::IBackendInternalUniquePtr(nullptr);
90  }
91  );
92 
93  // sanity check: the factory has not been called yet
94  BOOST_TEST(called == false);
95 
96  auto factoryFunction = BackendRegistryInstance().GetFactory("HelloWorld");
97 
98  // sanity check: the factory still not called
99  BOOST_TEST(called == false);
100 
101  factoryFunction();
102  BOOST_TEST(called == true);
103  BackendRegistryInstance().Deregister("HelloWorld");
104 }
FactoryFunction GetFactory(const BackendId &id) const
void Register(const BackendId &id, FactoryFunction factory)
BackendRegistry & BackendRegistryInstance()
Copyright (c) 2020 ARM Limited.
void Deregister(const BackendId &id)
std::unique_ptr< IBackendInternal > IBackendInternalUniquePtr
FileOnlyHelperService helper