| [bcf653] | 1 | /* | 
|---|
|  | 2 | * Project: MoleCuilder | 
|---|
|  | 3 | * Description: creates and alters molecular systems | 
|---|
|  | 4 | * Copyright (C)  2010 University of Bonn. All rights reserved. | 
|---|
|  | 5 | * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
| [b66c22] | 8 | /* | 
|---|
|  | 9 | * memoryusageobserverunittest.cpp | 
|---|
|  | 10 | */ | 
|---|
|  | 11 |  | 
|---|
|  | 12 |  | 
|---|
| [bf3817] | 13 | // include config.h | 
|---|
|  | 14 | #ifdef HAVE_CONFIG_H | 
|---|
|  | 15 | #include <config.h> | 
|---|
|  | 16 | #endif | 
|---|
|  | 17 |  | 
|---|
| [b66c22] | 18 | using namespace std; | 
|---|
|  | 19 |  | 
|---|
|  | 20 | #include <cppunit/CompilerOutputter.h> | 
|---|
|  | 21 | #include <cppunit/extensions/TestFactoryRegistry.h> | 
|---|
|  | 22 | #include <cppunit/ui/text/TestRunner.h> | 
|---|
|  | 23 |  | 
|---|
| [21b9c3] | 24 | #include "memoryallocator.hpp" | 
|---|
| [b66c22] | 25 | #include "memoryusageobserver.hpp" | 
|---|
|  | 26 | #include "memoryusageobserverunittest.hpp" | 
|---|
|  | 27 |  | 
|---|
| [9b6b2f] | 28 | #ifdef HAVE_TESTRUNNER | 
|---|
|  | 29 | #include "UnitTestMain.hpp" | 
|---|
|  | 30 | #endif /*HAVE_TESTRUNNER*/ | 
|---|
|  | 31 |  | 
|---|
| [b66c22] | 32 | /********************************************** Test classes **************************************/ | 
|---|
|  | 33 | // Registers the fixture into the 'registry' | 
|---|
|  | 34 | CPPUNIT_TEST_SUITE_REGISTRATION( MemoryUsageObserverTest ); | 
|---|
|  | 35 |  | 
|---|
|  | 36 |  | 
|---|
|  | 37 | void MemoryUsageObserverTest::setUp() | 
|---|
|  | 38 | { | 
|---|
|  | 39 | }; | 
|---|
|  | 40 |  | 
|---|
|  | 41 |  | 
|---|
|  | 42 | void MemoryUsageObserverTest::tearDown() | 
|---|
|  | 43 | { | 
|---|
|  | 44 | MemoryUsageObserver::purgeInstance(); | 
|---|
| [1ec0ac] | 45 | logger::purgeInstance(); | 
|---|
|  | 46 | errorLogger::purgeInstance(); | 
|---|
| [b66c22] | 47 | }; | 
|---|
|  | 48 |  | 
|---|
|  | 49 | /** | 
|---|
|  | 50 | * UnitTest for getInstance() | 
|---|
|  | 51 | */ | 
|---|
|  | 52 | void MemoryUsageObserverTest::getInstanceReturnsMemoryUsageObserverTest() | 
|---|
|  | 53 | { | 
|---|
|  | 54 | CPPUNIT_ASSERT_EQUAL(true, MemoryUsageObserver::getInstance() != NULL); | 
|---|
|  | 55 | }; | 
|---|
|  | 56 |  | 
|---|
|  | 57 | /** | 
|---|
|  | 58 | * UnitTest for getInstance() | 
|---|
|  | 59 | */ | 
|---|
|  | 60 | void MemoryUsageObserverTest::getInstanceTwiceReturnsSameInstanceTest() | 
|---|
|  | 61 | { | 
|---|
| [21b9c3] | 62 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::getInstanceTwiceReturnsSameInstanceTest - i"); | 
|---|
| [b66c22] | 63 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 64 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
|  | 65 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
|  | 66 | }; | 
|---|
|  | 67 |  | 
|---|
|  | 68 | /** | 
|---|
|  | 69 | * UnitTest for getInstance() | 
|---|
|  | 70 | */ | 
|---|
|  | 71 | void MemoryUsageObserverTest::getInstanceAfterPurgeInstanceReturnsNewInstanceTest() | 
|---|
|  | 72 | { | 
|---|
| [21b9c3] | 73 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::getInstanceAfterPurgeInstanceReturnsNewInstanceTest - i"); | 
|---|
| [b66c22] | 74 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 75 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
|  | 76 | MemoryUsageObserver::purgeInstance(); | 
|---|
|  | 77 | CPPUNIT_ASSERT_EQUAL((size_t) 0, MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
|  | 78 | }; | 
|---|
|  | 79 |  | 
|---|
|  | 80 | /** | 
|---|
|  | 81 | * UnitTest for addMemory() and removeMemory() | 
|---|
|  | 82 | */ | 
|---|
|  | 83 | void MemoryUsageObserverTest::addAndRemoveMemoryTest() | 
|---|
|  | 84 | { | 
|---|
| [21b9c3] | 85 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::addAndRemoveMemoryTest - i"); | 
|---|
| [b66c22] | 86 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 87 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
|  | 88 | MemoryUsageObserver::getInstance()->removeMemory(i); | 
|---|
|  | 89 | CPPUNIT_ASSERT_EQUAL((size_t) 0, MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
| [1ec0ac] | 90 | Free(i); | 
|---|
| [b66c22] | 91 | }; | 
|---|
|  | 92 |  | 
|---|
|  | 93 | /** | 
|---|
|  | 94 | * UnitTest for addMemory() and removeMemory() | 
|---|
|  | 95 | */ | 
|---|
|  | 96 | void MemoryUsageObserverTest::removeNonTrackedMemoryDoesNotCauseACrashTest() | 
|---|
|  | 97 | { | 
|---|
| [21b9c3] | 98 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::removeNonTrackedMemoryDoesNotCauseACrashTest - i"); | 
|---|
| [b66c22] | 99 | MemoryUsageObserver::getInstance()->removeMemory(i); | 
|---|
|  | 100 | CPPUNIT_ASSERT_EQUAL((size_t) 0, MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
| [1ec0ac] | 101 | Free(i); | 
|---|
| [b66c22] | 102 | }; | 
|---|
|  | 103 |  | 
|---|
|  | 104 | /** | 
|---|
|  | 105 | * UnitTest for addMemory() and removeMemory() | 
|---|
|  | 106 | */ | 
|---|
|  | 107 | void MemoryUsageObserverTest::addMemoryTwiceTest() | 
|---|
|  | 108 | { | 
|---|
| [21b9c3] | 109 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::addMemoryTwiceTest - i"); | 
|---|
|  | 110 | int* j = Malloc<int>(1, "MemoryUsageObserverTest::addMemoryTwiceTest - j"); | 
|---|
| [b66c22] | 111 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 112 | MemoryUsageObserver::getInstance()->addMemory(j, sizeof(int)); | 
|---|
|  | 113 | CPPUNIT_ASSERT_EQUAL(2 * sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
| [1ec0ac] | 114 | Free(i); | 
|---|
|  | 115 | Free(j); | 
|---|
| [21b9c3] | 116 | }; | 
|---|
| [b66c22] | 117 |  | 
|---|
|  | 118 | /** | 
|---|
|  | 119 | * UnitTest for addMemory() and removeMemory() | 
|---|
|  | 120 | */ | 
|---|
|  | 121 | void MemoryUsageObserverTest::addMemoryAndChangeSizeOfAddedMemoryTest() | 
|---|
|  | 122 | { | 
|---|
| [21b9c3] | 123 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::addMemoryAndChangeSizeOfAddedMemoryTest - i"); | 
|---|
| [b66c22] | 124 | MemoryUsageObserver::getInstance()->addMemory(i, 2 * sizeof(int)); | 
|---|
|  | 125 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 126 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getUsedMemorySize()); | 
|---|
| [1ec0ac] | 127 | Free(i); | 
|---|
| [21b9c3] | 128 | }; | 
|---|
| [b66c22] | 129 |  | 
|---|
|  | 130 | /** | 
|---|
|  | 131 | * UnitTest for getMaximumUsedMemory() | 
|---|
|  | 132 | */ | 
|---|
|  | 133 | void MemoryUsageObserverTest::addMemoryChangeSizeOfAddedMemoryAndGetMaximumSizeTest() | 
|---|
|  | 134 | { | 
|---|
| [21b9c3] | 135 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::addMemoryChangeSizeOfAddedMemoryAndGetMaximumSizeTest - i"); | 
|---|
| [b66c22] | 136 | MemoryUsageObserver::getInstance()->addMemory(i, 2 * sizeof(int)); | 
|---|
|  | 137 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 138 | CPPUNIT_ASSERT_EQUAL(2 * sizeof(int), MemoryUsageObserver::getInstance()->getMaximumUsedMemory()); | 
|---|
| [1ec0ac] | 139 | Free(i); | 
|---|
| [21b9c3] | 140 | }; | 
|---|
| [b66c22] | 141 |  | 
|---|
|  | 142 | /** | 
|---|
|  | 143 | * UnitTest for getMaximumUsedMemory() | 
|---|
|  | 144 | */ | 
|---|
|  | 145 | void MemoryUsageObserverTest::addMemoryRemoveMemoryAndGetMaximumSizeTest() | 
|---|
|  | 146 | { | 
|---|
| [21b9c3] | 147 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::addMemoryRemoveMemoryAndGetMaximumSizeTest - i"); | 
|---|
| [b66c22] | 148 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 149 | MemoryUsageObserver::getInstance()->removeMemory(i); | 
|---|
|  | 150 | CPPUNIT_ASSERT_EQUAL(sizeof(int), MemoryUsageObserver::getInstance()->getMaximumUsedMemory()); | 
|---|
| [1ec0ac] | 151 | Free(i); | 
|---|
| [21b9c3] | 152 | }; | 
|---|
|  | 153 |  | 
|---|
|  | 154 | /** | 
|---|
|  | 155 | * UnitTest for getPointersToAllocatedMemory() | 
|---|
|  | 156 | */ | 
|---|
|  | 157 | void MemoryUsageObserverTest::getPointersToAllocatedMemoryTest() | 
|---|
|  | 158 | { | 
|---|
|  | 159 | int* i = Malloc<int>(1, "MemoryUsageObserverTest::getPointersToAllocatedMemoryTest - i"); | 
|---|
|  | 160 | MemoryUsageObserver::getInstance()->addMemory(i, sizeof(int)); | 
|---|
|  | 161 | CPPUNIT_ASSERT_EQUAL(i, (int*) MemoryUsageObserver::getInstance()->getPointersToAllocatedMemory().begin()->first); | 
|---|
| [1ec0ac] | 162 | Free(i); | 
|---|
| [21b9c3] | 163 | }; | 
|---|