diff --git a/test/LiveServer.hs b/test/LiveServer.hs index be52166..f0fa3ae 100644 --- a/test/LiveServer.hs +++ b/test/LiveServer.hs @@ -39,11 +39,11 @@ import Network.Minio.S3API import Network.Minio.Utils import System.Directory (getTemporaryDirectory) import System.Environment (lookupEnv) -import qualified System.IO as SIO import qualified Test.QuickCheck as Q import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.QuickCheck as QC +import qualified UnliftIO.IO as UIO main :: IO () main = defaultMain tests @@ -267,8 +267,9 @@ lowLevelMultipartTest = funTestWithBucket "Low-level Multipart Test" $ randFile <- mkRandFile mb15 step "put object parts 1 of 1" - h <- liftIO $ SIO.openBinaryFile randFile SIO.ReadMode - partInfo <- putObjectPart bucket object uid 1 [] $ PayloadH h 0 mb15 + partInfo <- + UIO.withBinaryFile randFile UIO.ReadMode $ \h -> + putObjectPart bucket object uid 1 [] $ PayloadH h 0 mb15 step "complete multipart" void $ completeMultipartUpload bucket object uid [partInfo] @@ -454,9 +455,9 @@ highLevelListingTest = funTestWithBucket "High-level listObjects Test" $ step "put object parts 1..10" inputFile <- mkRandFile mb5 - h <- liftIO $ SIO.openBinaryFile inputFile SIO.ReadMode - forM_ [1 .. 10] $ \pnum -> - putObjectPart bucket object uid pnum [] $ PayloadH h 0 mb5 + UIO.withBinaryFile inputFile UIO.ReadMode $ \h -> + forM_ [1 .. 10] $ \pnum -> + putObjectPart bucket object uid pnum [] $ PayloadH h 0 mb5 step "fetch list parts" incompleteParts <- @@ -539,9 +540,9 @@ listingTest = funTestWithBucket "Listing Test" $ \step bucket -> do step "put object parts 1..10" inputFile <- mkRandFile mb5 - h <- liftIO $ SIO.openBinaryFile inputFile SIO.ReadMode - forM_ [1 .. 10] $ \pnum -> - putObjectPart bucket object uid pnum [] $ PayloadH h 0 mb5 + UIO.withBinaryFile inputFile UIO.ReadMode $ \h -> + forM_ [1 .. 10] $ \pnum -> + putObjectPart bucket object uid pnum [] $ PayloadH h 0 mb5 step "fetch list parts" listPartsResult <- listIncompleteParts' bucket object uid Nothing Nothing @@ -757,26 +758,28 @@ bucketPolicyFunTest = funTestWithBucket "Bucket Policy tests" $ multipartTest :: TestTree multipartTest = funTestWithBucket "Multipart Tests" $ \step bucket -> do - step "Prepare for putObjectInternal with non-seekable file, with size." - step "Upload multipart file." - let mb80 = 80 * 1024 * 1024 - obj = "mpart" + -- Commenting out test since it's platform specific. + -- FIXME: Need to find a platform agnostic way to test this. + -- step "Prepare for putObjectInternal with non-seekable file, with size." + -- step "Upload multipart file." + -- let mb80 = 80 * 1024 * 1024 + -- obj = "mpart" - void $ putObjectInternal bucket obj defaultPutObjectOptions $ ODFile "/dev/zero" (Just mb80) + -- void $ putObjectInternal bucket obj defaultPutObjectOptions $ ODFile "/dev/zero" (Just mb80) - step "Retrieve and verify file size" - destFile <- mkRandFile 0 - fGetObject bucket obj destFile defaultGetObjectOptions - gotSize <- withNewHandle destFile getFileSize - liftIO $ - gotSize == Right (Just mb80) - @? "Wrong file size of put file after getting" + -- step "Retrieve and verify file size" + -- destFile <- mkRandFile 0 + -- fGetObject bucket obj destFile defaultGetObjectOptions + -- gotSize <- withNewHandle destFile getFileSize + -- liftIO $ + -- gotSize == Right (Just mb80) + -- @? "Wrong file size of put file after getting" - step "Cleanup actions" - removeObject bucket obj + -- step "Cleanup actions" + -- removeObject bucket obj - step "cleanup" - removeObject bucket "big" + -- step "cleanup" + -- removeObject bucket "big" step "Prepare for removeIncompleteUpload" -- low-level multipart operation tests. @@ -791,8 +794,8 @@ multipartTest = funTestWithBucket "Multipart Tests" $ step "upload 2 parts" forM_ [1, 2] $ \partNum -> do - h <- liftIO $ SIO.openBinaryFile randFile SIO.ReadMode - void $ putObjectPart bucket object uid partNum [] $ PayloadH h 0 kb5 + UIO.withBinaryFile randFile UIO.ReadMode $ \h -> + void $ putObjectPart bucket object uid partNum [] $ PayloadH h 0 kb5 step "remove ongoing upload" removeIncompleteUpload bucket object