18#include "TestSamRecordPool.h"
19#include "SamRecordPool.h"
22void testSamRecordPool()
25 SamRecordPoolTest::testSamRecordPool();
29void SamRecordPoolTest::testSamRecordPool()
34 SamRecordPool pool(0);
35 assert(pool.getRecord() == NULL);
38 pool.setMaxAllocatedRecs(3);
41 SamRecord* rec1 = pool.getRecord();
45 SamRecord* rec2 = pool.getRecord();
50 SamRecord* rec3 = pool.getRecord();
52 assert((rec3 != rec1) && (rec3 != rec2));
55 assert(pool.getRecord() == NULL);
58 pool.releaseRecord(rec2);
59 SamRecord* rec = pool.getRecord();
63 pool.releaseRecord(rec3);
64 pool.releaseRecord(rec1);
65 pool.releaseRecord(rec);
66 SamRecord* release1 = pool.getRecord();
67 SamRecord* release2 = pool.getRecord();
68 SamRecord* release3 = pool.getRecord();
69 assert(release1 == rec3);
70 assert(release2 == rec1);
71 assert(release3 == rec);
72 assert(pool.getRecord() == NULL);
77 pool.setMaxAllocatedRecs(4);
78 pool.setMaxAllocatedRecs(0);
79 pool.releaseRecord(release3);
80 pool.releaseRecord(release1);
81 pool.releaseRecord(release2);
82 rec1 = pool.getRecord();
83 rec2 = pool.getRecord();
84 rec3 = pool.getRecord();
85 assert(rec1 == release3);
86 assert(rec2 == release1);
87 assert(rec3 == release2);
88 assert(pool.getRecord() == NULL);
92 pool.setMaxAllocatedRecs(4);
93 rec = pool.getRecord();
98 assert(pool.getRecord() == NULL);