File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed
Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change 88
99module Streamly.Test.Data.Array (main ) where
1010
11+ import Control.Monad (void )
1112import Data.Char (isLower )
1213import Data.List (sort )
1314import Data.Proxy (Proxy (.. ))
@@ -222,12 +223,21 @@ testUnsafeAsForeignPtr = do
222223 where
223224 getIntList1 fp blen = withForeignPtr fp $ \ p -> getIntList p blen
224225
226+ performGCSweep :: Int -> Int -> IO ()
227+ performGCSweep i j = do
228+ mapM_ id $ replicate i $ do
229+ performMajorGC
230+ void $ MA. fromList ([0 .. j] :: [Int ])
231+
225232testForeignPtrConversionId :: IO ()
226233testForeignPtrConversionId = do
227234 arr0 <- MA. unsafeGetSlice 10 50 <$> MA. fromList ([0 .. 99 ] :: [Word8 ])
228235 let arr = A. unsafeFreeze arr0
229- arr1 <- A. unsafeAsForeignPtr arr A. unsafeFromForeignPtr
230- arr1 `shouldBe` arr
236+ A. unsafeAsForeignPtr arr $ \ a b -> do
237+ res <- A. unsafeFromForeignPtr a b
238+ performGCSweep 4 100000
239+ res `shouldBe` arr
240+
231241
232242testUnsafeFromForeignPtr :: IO ()
233243testUnsafeFromForeignPtr = do
You can’t perform that action at this time.
0 commit comments