use crate::budget::MemoryBudget;
use crate::io::{open_file, IoMode};
use crate::pool::BufferPool;
use std::sync::Arc;
pub fn scratch_pool(frames: usize) -> (BufferPool, tempfile::TempDir) {
let d = tempfile::tempdir().unwrap();
let (f, _) = open_file(&d.path().join("t.db"), IoMode::Buffered).unwrap();
let b = Arc::new(MemoryBudget::new(256 * 1024 * 1024));
let pool = BufferPool::new(f.into(), b, frames).unwrap();
let reserved = { let w = pool.allocate().unwrap(); w.page_no() };
assert_eq!(reserved, 0, "the superblock must be page 0");
(pool, d)
}