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