public void properly_calculate_thread_total_allocations_when_we_cant_put_buffer_in_pool() { var encryptionBuffersPool = new EncryptionBuffersPool(registerLowMemory: false, registerCleanup: false); var ptr = encryptionBuffersPool.Get(1, out var initialSize, out var threadStats); var size = initialSize; var free4KbAlignedMemoryCount = 0; var updateMemoryStatsForThreadCount = 0; var testingStuff = encryptionBuffersPool.ForTestingPurposesOnly(); testingStuff.CanAddToPerCorePool = false; testingStuff.CanAddToGlobalPool = false; testingStuff.OnFree4KbAlignedMemory = s => { free4KbAlignedMemoryCount++; size -= s; }; testingStuff.OnUpdateMemoryStatsForThread = s => { updateMemoryStatsForThreadCount++; }; encryptionBuffersPool.Return(ptr, initialSize, threadStats, encryptionBuffersPool.Generation); Assert.Equal(1, free4KbAlignedMemoryCount); Assert.Equal(0, size); Assert.Equal(0, updateMemoryStatsForThreadCount); }