MCPcopy Create free account
hub / github.com/erans/pgsqlite / test_buffer_allocation_and_reuse

Function test_buffer_allocation_and_reuse

src/protocol/buffer_pool.rs:411–437  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

409
410 #[test]
411 fn test_buffer_allocation_and_reuse() {
412 let pool = BufferPool::new();
413
414 // Allocate a buffer
415 {
416 let mut buffer = pool.get_buffer();
417 buffer.buffer_mut().extend_from_slice(b"test data");
418 assert_eq!(buffer.len(), 9);
419 } // Buffer should be returned to pool here
420
421 let stats = pool.get_stats();
422 assert_eq!(stats.buffers_allocated, 1);
423 assert_eq!(stats.buffers_returned, 1);
424 assert_eq!(stats.current_pool_size, 1);
425
426 // Reuse the buffer
427 {
428 let mut buffer = pool.get_buffer();
429 assert_eq!(buffer.len(), 0); // Should be cleared
430 buffer.buffer_mut().extend_from_slice(b"new data");
431 }
432
433 let stats = pool.get_stats();
434 assert_eq!(stats.buffers_allocated, 1);
435 assert_eq!(stats.buffers_reused, 1);
436 assert_eq!(stats.reuse_rate(), 50.0); // 1 reused out of 2 total gets
437 }
438
439 #[test]
440 fn test_buffer_pool_size_limit() {

Callers

nothing calls this directly

Calls 3

get_bufferMethod · 0.80
buffer_mutMethod · 0.80
get_statsMethod · 0.45

Tested by

no test coverage detected