swapper-0.1: test/test-load.hs
module Main where
import Control.DeepSeq
import Control.Monad
import Data.Binary.Get
import Data.Binary.Put
import qualified Data.ByteString.Char8 as BS
import qualified Data.ByteString.Lazy.Char8 as BSL
import System.Mem
import Data.Disk.Swapper
import Data.Disk.Swapper.Cache
import Data.Disk.Swapper.Snapshot
instance NFData BS.ByteString where
rnf x = x `seq` ()
main :: IO ()
main = do
x <- runGet getFromSnapshot =<< BSL.readFile "snapshot2"
setCache x =<< mkClockCache 5
print . BS.length . getting last $ x
let y = adding (:) (BS.pack "aaa") $
adding (:) (BS.pack "bbb") $
x
forM_ [2..12] $ \i -> do
BS.writeFile "out" (getting (!!i) y)
performGC
BSL.writeFile "snapshot3" . runPut =<< putToSnapshot y