source: src/unittests/memoryallocatorunittest.cpp@ 986ed3

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 986ed3 was 920c70, checked in by Frederik Heber <heber@…>, 15 years ago

Removed all Malloc/Calloc/ReAlloc (&Free) and replaced by new and delete/delete[].

Due to the new MemDebug framework there is no need (or even unnecessary/unwanted competition between it and) for the MemoryAllocator and ..UsageObserver anymore.
They can however still be used with c codes such as pcp and alikes.

In Molecuilder lots of glibc corruptions arose and the C-like syntax make it generally harder to get allocation and deallocation straight.

Signed-off-by: Frederik Heber <heber@…>

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*
2 * memoryallocatorunittest.cpp
3 */
4
5
6using namespace std;
7
8#include <cppunit/CompilerOutputter.h>
9#include <cppunit/extensions/TestFactoryRegistry.h>
10#include <cppunit/ui/text/TestRunner.h>
11
12#include "memoryallocator.hpp"
13#include "memoryallocatorunittest.hpp"
14#include "memoryusageobserver.hpp"
15#include "helpers.hpp"
16#include "log.hpp"
17#include "defs.hpp"
18
19#ifdef HAVE_TESTRUNNER
20#include "UnitTestMain.hpp"
21#endif /*HAVE_TESTRUNNER*/
22
23/********************************************** Test classes **************************************/
24
25// Registers the fixture into the 'registry'
26CPPUNIT_TEST_SUITE_REGISTRATION( MemoryAllocatorTest );
27
28
29void MemoryAllocatorTest::setUp()
30{
31};
32
33
34void MemoryAllocatorTest::tearDown()
35{
36 MemoryUsageObserver::getInstance()->purgeInstance();
37 logger::purgeInstance();
38};
39
40/**
41 * UnitTest for Malloc()
42 */
43void MemoryAllocatorTest::MallocTest()
44{
45 int* buffer1 = NULL;
46 buffer1 = Malloc<int>(1, "");
47 Free(&buffer1);
48
49 long* buffer2 = NULL;
50 buffer2 = Malloc<long>(1, "");
51 Free(&buffer2);
52
53 char* buffer3 = NULL;
54 buffer3 = Malloc<char>(4, "");
55 DoLog(0) && (Log() << Verbose(0) << buffer3 << endl);
56 Free(&buffer3);
57
58 char** buffer4 = NULL;
59 buffer4 = Malloc<char*>(10, "");
60 for (int i=0;i<10;i++)
61 buffer4[i] = NULL;
62 Free(&buffer4);
63};
64
65/**
66 * UnitTest for Calloc()
67 */
68void MemoryAllocatorTest::CallocTest()
69{
70 int* buffer1 = NULL;
71 buffer1 = Calloc<int>(10, "");
72 Free(&buffer1);
73
74 long* buffer2 = NULL;
75 buffer2 = Calloc<long>(10, "");
76 Free(&buffer2);
77
78 char** buffer3 = NULL;
79 buffer3 = Calloc<char *>(10, "");
80 for (int i=0;i<10;i++)
81 buffer3[i] = NULL;
82 Free(&buffer3);
83};
84
85/**
86 * UnitTest for ReAlloc()
87 */
88void MemoryAllocatorTest::ReAllocTest()
89{
90 int* buffer1 = NULL;
91 buffer1 = Malloc<int>(1, "");
92 buffer1 = ReAlloc<int>(buffer1, 2, "");
93 Free(&buffer1);
94
95 int* buffer2 = NULL;
96 buffer2 = ReAlloc<int>(buffer2, 2, "");
97 Free(&buffer2);
98};
99
100/**
101 * UnitTest for Free()
102 */
103void MemoryAllocatorTest::FreeTest()
104{
105 char** buffer1 = NULL;
106 Free(buffer1);
107
108 int** buffer2 = NULL;
109 Free(buffer2);
110};
Note: See TracBrowser for help on using the repository browser.