lzo-0.1.1.1: test/Spec.hs
module Main (main) where
import Codec.Compression.Lzo
import qualified Data.ByteString.Lazy as BSL
import Test.Tasty
import Test.Tasty.HUnit
testRoundtripFrames :: FilePath -> TestTree
testRoundtripFrames fp = testCase ("Roundtrip " ++ fp) $ do
contents <- BSL.readFile fp
let actual = decompressFile (compressFile contents)
actual @?= contents
testDecompress :: FilePath -> TestTree
testDecompress fp = testCase ("Decompress " ++ fp) $ do
res <- decompressFile <$> BSL.readFile fp
let lByte = last (BSL.toChunks res)
assertBool "Does not throw exception" (lByte `seq` True)
main :: IO ()
main =
defaultMain $
testGroup "lzo" [ testFrames
, testDecompress "test/data/minilzo.c.lzo"
]
where
testFrames = testGroup "Frame compression" $
testRoundtripFrames <$>
[ "cbits/minilzo.c"
, "cbits/lzodefs.h"
]