hw-prim-0.6.3.1: test/HaskellWorks/Data/FromForeignRegionSpec.hs
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE ScopedTypeVariables #-}
module HaskellWorks.Data.FromForeignRegionSpec (spec) where
import Control.Monad.IO.Class
import Data.Word
import HaskellWorks.Hspec.Hedgehog
import Hedgehog
import Test.Hspec
import qualified Data.ByteString as BS
import qualified Data.Vector.Storable as DVS
import qualified HaskellWorks.Data.FromForeignRegion as IO
import qualified Hedgehog.Gen as G
import qualified Hedgehog.Range as R
import qualified System.Directory as IO
import qualified System.IO as IO
{- HLINT ignore "Redundant do" -}
spec :: Spec
spec = describe "HaskellWorks.Data.FromForeignRegionSpec" $ do
it "Be able to load file into Vector" $ requireProperty $ do
ws <- forAll $ G.list (R.linear 0 (1024 * 16)) (G.word8 R.constantBounded)
liftIO $ IO.createDirectoryIfMissing True "./tmp"
(fp, h) <- liftIO $ IO.openBinaryTempFile "./tmp" "property-test-.txt"
liftIO $ BS.hPut h (BS.pack ws)
liftIO $ IO.hClose h
!(_ :: DVS.Vector Word64) <- liftIO $ IO.mmapFromForeignRegion fp
-- liftIO $ IO.removeFile fp
True === True