xref: /aosp_15_r20/external/armnn/src/backends/reference/test/RefMemoryManagerTests.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <reference/RefMemoryManager.hpp>
7 
8 #include <doctest/doctest.h>
9 
10 TEST_SUITE("RefMemoryManagerTests")
11 {
12 using namespace armnn;
13 using Pool = RefMemoryManager::Pool;
14 
15 TEST_CASE("ManageOneThing")
16 {
17     RefMemoryManager memoryManager;
18 
19     Pool* pool = memoryManager.Manage(10);
20 
21     CHECK(pool);
22 
23     memoryManager.Acquire();
24 
25     CHECK(memoryManager.GetPointer(pool) != nullptr); // Yields a valid pointer
26 
27     memoryManager.Release();
28 }
29 
30 TEST_CASE("ManageTwoThings")
31 {
32     RefMemoryManager memoryManager;
33 
34     Pool* pool1 = memoryManager.Manage(10);
35     Pool* pool2 = memoryManager.Manage(5);
36 
37     CHECK(pool1);
38     CHECK(pool2);
39 
40     memoryManager.Acquire();
41 
42     void *p1 = memoryManager.GetPointer(pool1);
43     void *p2 = memoryManager.GetPointer(pool2);
44 
45     CHECK(p1);
46     CHECK(p2);
47     CHECK(p1 != p2);
48 
49     memoryManager.Release();
50 }
51 
52 }
53