Skip to content

Commit

Permalink
tmp tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Denis Shevchenko committed Jan 17, 2022
1 parent 581e371 commit dd26df5
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions cardano-tracer/test/Cardano/Tracer/Test/Utils.hs
Expand Up @@ -7,10 +7,11 @@ module Cardano.Tracer.Test.Utils
) where

import Control.Exception (finally)
import System.Directory.Extra (getTemporaryDirectory,
listDirectories, removeFile, removePathForcibly)
import Control.Monad.Extra (whenM)
import System.Directory.Extra (doesFileExist, listDirectories,
removeFile, removePathForcibly)
import System.FilePath (dropDrive)
import System.IO.Extra (newTempDirWithin, newTempFileWithin)
import System.IO.Extra (newTempDir, newTempFile)
import System.Info.Extra (isWindows)
import Test.Tasty.QuickCheck

Expand All @@ -21,31 +22,34 @@ propRunInLogsStructure
:: (FilePath -> FilePath -> IO Property)
-> Property
propRunInLogsStructure testAction = ioProperty $ do
tmpDir <- getTemporaryDirectory
(rootDir, deleteDir) <- newTempDirWithin tmpDir
(localSock, _) <- newTempFileWithin tmpDir
(rootDir, deleteDir) <- newTempDir
(localSock, _) <- newTempFile
let preparedLocalSock = if isWindows then forWindows localSock else localSock
testAction rootDir preparedLocalSock
`finally` (removeFile preparedLocalSock >> deleteDir)
`finally` (removeFile' preparedLocalSock >> deleteDir)

propRunInLogsStructure2
:: (FilePath -> FilePath -> FilePath -> IO Property)
-> Property
propRunInLogsStructure2 testAction = ioProperty $ do
tmpDir <- getTemporaryDirectory
(rootDir, deleteDir) <- newTempDirWithin tmpDir
(localSock1, _) <- newTempFileWithin tmpDir
(localSock2, _) <- newTempFileWithin tmpDir
(rootDir, deleteDir) <- newTempDir
(localSock1, _) <- newTempFile
(localSock2, _) <- newTempFile
let preparedLocalSock1 = if isWindows then forWindows localSock1 else localSock1
preparedLocalSock2 = if isWindows then forWindows localSock2 else localSock2
testAction rootDir preparedLocalSock1 preparedLocalSock2
`finally` (removeFile preparedLocalSock1 >> removeFile preparedLocalSock2 >> deleteDir)
`finally` ( removeFile' preparedLocalSock1
>> removeFile' preparedLocalSock2
>> deleteDir)

forWindows :: FilePath -> FilePath
forWindows localSock = "\\\\.\\pipe\\" <> dropDrive localSock

removeDirectoryContent :: FilePath -> IO ()
removeDirectoryContent dir = listDirectories dir >>= mapM_ removePathForcibly

removeFile' :: FilePath -> IO ()
removeFile' f = whenM (doesFileExist f) $ removeFile f

doesDirectoryEmpty :: FilePath -> IO Bool
doesDirectoryEmpty = fmap null . listDirectories

0 comments on commit dd26df5

Please sign in to comment.