()
| 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() { |
nothing calls this directly
no test coverage detected