module Data.Streaming.FileReadSpec (spec) where import Test.Hspec import qualified Data.ByteString as S import qualified Data.Streaming.FileRead as F import Control.Exception (bracket) spec :: Spec spec = describe "Data.Streaming.FileRead" $ do it "works" $ do let fp = "LICENSE" expected <- S.readFile fp actual <- bracket (F.openFile fp) F.closeFile $ \fh -> do let loop front = do bs <- F.readChunk fh if S.null bs then return $ S.concat $ front [] else loop (front . (bs:)) loop id actual `shouldBe` expected