packages feed

lzlib-0.3.0.0: test/Spec.hs

module Main ( main ) where

import           Codec.Lzip
import           Control.Monad        (filterM)
import qualified Data.ByteString.Lazy as BSL
import           Data.Foldable        (traverse_)
import           System.Directory     (doesFileExist)
import           Test.Hspec

compressFile :: FilePath -> Spec
compressFile fp = parallel $
    it "roundtrip should be identity" $ do
        str <- BSL.readFile fp
        decompress (compress str) `shouldBe` str

roundtripFile :: FilePath -> Spec
roundtripFile fp = parallel $
    it "roundtrip should be identity" $ do
        str <- BSL.readFile fp
        compress (decompress str) `shouldBe` str

main :: IO ()
main = do
    ex' <- filterM doesFileExist ["gmp-6.1.2.tar.lz", "lzlib-1.10.tar.lz"]
    ex <- filterM doesFileExist ["gmp-6.1.2.tar", "lzlib-1.10.tar"]
    hspec $ do
        describe "decompress/compress" $
            traverse_ compressFile ex
        describe "compress/decompress" $
            traverse_ roundtripFile ex'