2
0

test_CRDataCache.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from direct.distributed.CachedDOData import CachedDOData
  2. from direct.distributed.CRDataCache import CRDataCache
  3. def test_CRDataCache():
  4. dc = CRDataCache()
  5. dc._startMemLeakCheck()
  6. cd = CachedDOData()
  7. cd.foo = 34
  8. dc.setCachedData(1, 'testCachedData', cd)
  9. del cd
  10. cd = CachedDOData()
  11. cd.bar = 45
  12. dc.setCachedData(1, 'testCachedData2', cd)
  13. del cd
  14. assert dc.hasCachedData(1)
  15. assert dc.hasCachedData(1)
  16. assert not dc.hasCachedData(2)
  17. # data is dict of dataName->data
  18. data = dc.popCachedData(1)
  19. assert len(data) == 2
  20. assert 'testCachedData' in data
  21. assert 'testCachedData2' in data
  22. assert data['testCachedData'].foo == 34
  23. assert data['testCachedData2'].bar == 45
  24. for cd in data.values():
  25. cd.flush()
  26. del data
  27. dc._checkMemLeaks()
  28. cd = CachedDOData()
  29. cd.bar = 1234
  30. dc.setCachedData(43, 'testCachedData2', cd)
  31. del cd
  32. assert dc.hasCachedData(43)
  33. dc.flush()
  34. dc._checkMemLeaks()
  35. dc._stopMemLeakCheck()
  36. dc.destroy()
  37. del dc