snappy-c-0.1.0: test/Main.hs
{-# OPTIONS_GHC -Wno-warnings-deprecations #-}
module Main where
import Test.Prop.RoundTrip qualified as RoundTrip
import Codec.Compression.SnappyC.Raw qualified as Raw
import Codec.Compression.SnappyC.Framed qualified as Framed
import Data.ByteString.Lazy qualified as BS.Lazy
import Test.Tasty
import Test.Tasty.HUnit
main :: IO ()
main =
defaultMain $
testGroup "Test.SnappyC"
[ -- Round trip property tests
RoundTrip.tests
-- Sanity checks
-- Ensure size of frame compressed output for empty input is exactly
-- 10 bytes
, testCase "emptyCompressedSize" $
10 @?= BS.Lazy.length (Framed.compress "")
-- Ensure invalid raw decompression is 'Nothing'
, testCase "invalidRawDecompress" $
Nothing @?= Raw.decompress "not a valid compressed string"
-- Ensure invalid framed decompression throws an exception
, testCase "invalidFramedDecompress" $
case Framed.decompress' "not a valid compressed string" of
Right _ -> assertFailure "invalid decompression succeeded"
Left _ -> return ()
]