1/* 2 $Id: BlockCacheConcurrencyTest.h 4522 2003-09-07 11:53:03Z bonefish $ 3 4 This file defines a class for testing BBlockCache 5 6 */ 7 8 9#ifndef BlockCacheConcurrencyTest_H 10#define BlockCacheConcurrencyTest_H 11 12 13#include "ThreadedTestCase.h" 14#include <string> 15#include <OS.h> 16 17 18class BBlockCache; 19class BList; 20 21 22class BlockCacheConcurrencyTest : public BThreadedTestCase { 23 24private: 25 BBlockCache *theObjCache; 26 BBlockCache *theMallocCache; 27 int numBlocksInCache; 28 size_t sizeOfBlocksInCache; 29 size_t sizeOfNonCacheBlocks; 30 31 void *GetBlock(BBlockCache *theCache, size_t blockSize, 32 thread_id theThread, BList *cacheList, BList *nonCacheList); 33 void SaveBlock(BBlockCache *theCache, void *, size_t blockSize, 34 thread_id theThread, BList *cacheList, BList *nonCacheList); 35 void FreeBlock(void *, size_t blockSize, bool isMallocTest, 36 thread_id theThread, BList *cacheList, 37 BList *nonCacheList); 38 void TestBlockCache(BBlockCache *theCache, bool isMallocTest); 39 40public: 41 static Test *suite(void); 42 void TestThreadObj(void); 43 void TestThreadMalloc(void); 44 virtual void setUp(void); 45 virtual void tearDown(void); 46 BlockCacheConcurrencyTest(std::string); 47 virtual ~BlockCacheConcurrencyTest(); 48}; 49 50#endif 51