hsfm/test/Spec.hs

72 lines
2.9 KiB
Haskell
Raw Normal View History

2016-05-02 17:08:46 +00:00
{-# LANGUAGE OverloadedStrings #-}
import Test.Hspec
2016-05-03 11:27:10 +00:00
import FileSystem.FileOperations.CopyDirRecursiveSpec
import FileSystem.FileOperations.CopyFileSpec
import FileSystem.FileOperations.CreateDirSpec
import FileSystem.FileOperations.CreateRegularFileSpec
import FileSystem.FileOperations.DeleteDirRecursiveSpec
import FileSystem.FileOperations.DeleteDirSpec
import FileSystem.FileOperations.DeleteFileSpec
import FileSystem.FileOperations.GetDirsFilesSpec
import FileSystem.FileOperations.GetFileTypeSpec
import FileSystem.FileOperations.MoveFileSpec
import FileSystem.FileOperations.RecreateSymlinkSpec
import FileSystem.FileOperations.RenameFileSpec
2016-05-03 11:13:07 +00:00
import Utils
2016-05-02 17:08:46 +00:00
-- TODO: chardev, blockdev, namedpipe, socket
main :: IO ()
main = hspec $ before_ fixPermissions $ after_ revertPermissions $ do
let tests = [copyFileSpec
, copyDirRecursiveSpec
, createDirSpec
, createRegularFileSpec
, renameFileSpec
, moveFileSpec
2016-05-02 20:13:19 +00:00
, recreateSymlinkSpec
2016-05-02 21:10:22 +00:00
, deleteFileSpec
2016-05-03 09:19:13 +00:00
, deleteDirSpec
, deleteDirRecursiveSpec
]
2016-05-02 20:13:19 +00:00
-- run all stateful tests twice to catch missing cleanups or state skew
sequence_ tests
sequence_ tests
2016-05-02 20:52:10 +00:00
-- stateless tests
getFileTypeSpec
getDirsFilesSpec
where
2016-05-03 11:27:10 +00:00
noWriteDirs = ["test/FileSystem/FileOperations/copyFileSpec/outputDirNoWrite"
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noWritePerm"
,"test/FileSystem/FileOperations/createDirSpec/noWritePerms"
,"test/FileSystem/FileOperations/createRegularFileSpec/noWritePerms"
,"test/FileSystem/FileOperations/renameFileSpec/noWritePerm"
,"test/FileSystem/FileOperations/moveFileSpec/noWritePerm"
,"test/FileSystem/FileOperations/recreateSymlinkSpec/noWritePerm"
]
2016-05-03 11:27:10 +00:00
noPermsDirs = ["test/FileSystem/FileOperations/copyFileSpec/noPerms"
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noPerms"
,"test/FileSystem/FileOperations/createDirSpec/noPerms"
,"test/FileSystem/FileOperations/createRegularFileSpec/noPerms"
,"test/FileSystem/FileOperations/renameFileSpec/noPerms"
,"test/FileSystem/FileOperations/moveFileSpec/noPerms"
,"test/FileSystem/FileOperations/recreateSymlinkSpec/noPerms"
,"test/FileSystem/FileOperations/getFileTypeSpec/noPerms"
,"test/FileSystem/FileOperations/getDirsFilesSpec/noPerms"
,"test/FileSystem/FileOperations/deleteFileSpec/noPerms"
]
fixPermissions = do
sequence_ $ fmap noWritableDirPerms noWriteDirs
sequence_ $ fmap noPerms noPermsDirs
revertPermissions = do
sequence_ $ fmap normalDirPerms noWriteDirs
sequence_ $ fmap normalDirPerms noPermsDirs
2016-05-02 17:08:46 +00:00