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" ]