Пример #1
0
        public void AcquireCache_MultipleEntriesEvicted_OldestAreEvicted()
        {
            FileSystemBufferManager manager = CreateManager(0x20000);
            Buffer buffer1 = manager.AllocateBuffer(0x8000);
            Buffer buffer2 = manager.AllocateBuffer(0x8000);
            Buffer buffer3 = manager.AllocateBuffer(0x8000);
            Buffer buffer4 = manager.AllocateBuffer(0x8000);

            long handle1 = manager.RegisterCache(buffer1, new IBufferManager.BufferAttribute());
            long handle2 = manager.RegisterCache(buffer2, new IBufferManager.BufferAttribute());
            long handle3 = manager.RegisterCache(buffer3, new IBufferManager.BufferAttribute());
            long handle4 = manager.RegisterCache(buffer4, new IBufferManager.BufferAttribute());

            manager.AllocateBuffer(0x10000);

            Buffer buffer1B = manager.AcquireCache(handle1);
            Buffer buffer2B = manager.AcquireCache(handle2);
            Buffer buffer3B = manager.AcquireCache(handle3);
            Buffer buffer4B = manager.AcquireCache(handle4);

            Assert.True(buffer1B.IsNull);
            Assert.True(buffer2B.IsNull);
            Assert.Equal(buffer3, buffer3B);
            Assert.Equal(buffer4, buffer4B);
        }
Пример #2
0
        public void AcquireCache_EntryEvicted_ReturnsNull()
        {
            FileSystemBufferManager manager = CreateManager(0x20000);
            Buffer buffer1 = manager.AllocateBuffer(0x10000);

            long handle = manager.RegisterCache(buffer1, new IBufferManager.BufferAttribute());

            manager.AllocateBuffer(0x20000);
            Buffer buffer3 = manager.AcquireCache(handle);

            Assert.True(buffer3.IsNull);
        }