TESTS: use hspec-discover
This commit is contained in:
parent
5b6a342a9e
commit
c89d6b945c
@ -119,8 +119,9 @@ Test-Suite spec
|
|||||||
Type: exitcode-stdio-1.0
|
Type: exitcode-stdio-1.0
|
||||||
Default-Language: Haskell2010
|
Default-Language: Haskell2010
|
||||||
Hs-Source-Dirs: test
|
Hs-Source-Dirs: test
|
||||||
Main-Is: Spec.hs
|
Main-Is: Main.hs
|
||||||
other-modules:
|
other-modules:
|
||||||
|
Spec
|
||||||
FileSystem.FileOperations.CopyDirRecursiveSpec
|
FileSystem.FileOperations.CopyDirRecursiveSpec
|
||||||
FileSystem.FileOperations.CopyDirRecursiveOverwriteSpec
|
FileSystem.FileOperations.CopyDirRecursiveOverwriteSpec
|
||||||
FileSystem.FileOperations.CopyFileSpec
|
FileSystem.FileOperations.CopyFileSpec
|
||||||
|
@ -19,8 +19,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
copyDirRecursiveOverwriteSpec :: Spec
|
spec :: Spec
|
||||||
copyDirRecursiveOverwriteSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.copyDirRecursiveOverwrite" $ do
|
describe "HSFM.FileSystem.FileOperations.copyDirRecursiveOverwrite" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -19,8 +19,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
copyDirRecursiveSpec :: Spec
|
spec :: Spec
|
||||||
copyDirRecursiveSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.copyDirRecursive" $ do
|
describe "HSFM.FileSystem.FileOperations.copyDirRecursive" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -19,8 +19,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
copyFileOverwriteSpec :: Spec
|
spec :: Spec
|
||||||
copyFileOverwriteSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.copyFileOverwrite" $ do
|
describe "HSFM.FileSystem.FileOperations.copyFileOverwrite" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -19,8 +19,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
copyFileSpec :: Spec
|
spec :: Spec
|
||||||
copyFileSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.copyFile" $ do
|
describe "HSFM.FileSystem.FileOperations.copyFile" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -15,8 +15,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
createDirSpec :: Spec
|
spec :: Spec
|
||||||
createDirSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.createDir" $ do
|
describe "HSFM.FileSystem.FileOperations.createDir" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -15,8 +15,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
createRegularFileSpec :: Spec
|
spec :: Spec
|
||||||
createRegularFileSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.createRegularFile" $ do
|
describe "HSFM.FileSystem.FileOperations.createRegularFile" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -20,8 +20,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
deleteDirRecursiveSpec :: Spec
|
spec :: Spec
|
||||||
deleteDirRecursiveSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.deleteDirRecursive" $ do
|
describe "HSFM.FileSystem.FileOperations.deleteDirRecursive" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -19,8 +19,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
deleteDirSpec :: Spec
|
spec :: Spec
|
||||||
deleteDirSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.deleteDir" $ do
|
describe "HSFM.FileSystem.FileOperations.deleteDir" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -19,8 +19,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
deleteFileSpec :: Spec
|
spec :: Spec
|
||||||
deleteFileSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.deleteFile" $ do
|
describe "HSFM.FileSystem.FileOperations.deleteFile" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -29,8 +29,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
getDirsFilesSpec :: Spec
|
spec :: Spec
|
||||||
getDirsFilesSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.getDirsFiles" $ do
|
describe "HSFM.FileSystem.FileOperations.getDirsFiles" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -17,8 +17,8 @@ import Utils
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
getFileTypeSpec :: Spec
|
spec :: Spec
|
||||||
getFileTypeSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.getFileType" $ do
|
describe "HSFM.FileSystem.FileOperations.getFileType" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -16,8 +16,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
moveFileOverwriteSpec :: Spec
|
spec :: Spec
|
||||||
moveFileOverwriteSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.moveFileOverwrite" $ do
|
describe "HSFM.FileSystem.FileOperations.moveFileOverwrite" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -16,8 +16,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
moveFileSpec :: Spec
|
spec :: Spec
|
||||||
moveFileSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.moveFile" $ do
|
describe "HSFM.FileSystem.FileOperations.moveFile" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -16,8 +16,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
recreateSymlinkSpec :: Spec
|
spec :: Spec
|
||||||
recreateSymlinkSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.recreateSymlink" $ do
|
describe "HSFM.FileSystem.FileOperations.recreateSymlink" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
@ -16,8 +16,8 @@ import GHC.IO.Exception
|
|||||||
import Utils
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
renameFileSpec :: Spec
|
spec :: Spec
|
||||||
renameFileSpec =
|
spec =
|
||||||
describe "HSFM.FileSystem.FileOperations.renameFile" $ do
|
describe "HSFM.FileSystem.FileOperations.renameFile" $ do
|
||||||
|
|
||||||
-- successes --
|
-- successes --
|
||||||
|
53
test/Main.hs
Normal file
53
test/Main.hs
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
|
||||||
|
import Test.Hspec
|
||||||
|
import Test.Hspec.Runner
|
||||||
|
import Test.Hspec.Formatters
|
||||||
|
import qualified Spec
|
||||||
|
import Utils
|
||||||
|
|
||||||
|
|
||||||
|
-- TODO: chardev, blockdev, namedpipe, socket
|
||||||
|
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main =
|
||||||
|
hspecWith
|
||||||
|
defaultConfig { configFormatter = Just progress }
|
||||||
|
$ before_ fixPermissions
|
||||||
|
$ after_ revertPermissions
|
||||||
|
$ Spec.spec >> Spec.spec
|
||||||
|
where
|
||||||
|
noWriteDirs = ["test/FileSystem/FileOperations/copyFileSpec/outputDirNoWrite"
|
||||||
|
,"test/FileSystem/FileOperations/copyFileOverwriteSpec/outputDirNoWrite"
|
||||||
|
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noWritePerm"
|
||||||
|
,"test/FileSystem/FileOperations/copyDirRecursiveOverwriteSpec/noWritePerm"
|
||||||
|
,"test/FileSystem/FileOperations/createDirSpec/noWritePerms"
|
||||||
|
,"test/FileSystem/FileOperations/createRegularFileSpec/noWritePerms"
|
||||||
|
,"test/FileSystem/FileOperations/renameFileSpec/noWritePerm"
|
||||||
|
,"test/FileSystem/FileOperations/moveFileSpec/noWritePerm"
|
||||||
|
,"test/FileSystem/FileOperations/moveFileOverwriteSpec/noWritePerm"
|
||||||
|
,"test/FileSystem/FileOperations/recreateSymlinkSpec/noWritePerm"
|
||||||
|
]
|
||||||
|
noPermsDirs = ["test/FileSystem/FileOperations/copyFileSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/copyFileOverwriteSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/copyDirRecursiveOverwriteSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/createDirSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/createRegularFileSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/renameFileSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/moveFileSpec/noPerms"
|
||||||
|
,"test/FileSystem/FileOperations/moveFileOverwriteSpec/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
|
||||||
|
|
||||||
|
|
85
test/Spec.hs
85
test/Spec.hs
@ -1,83 +1,2 @@
|
|||||||
{-# LANGUAGE OverloadedStrings #-}
|
-- file test/Spec.hs
|
||||||
|
{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}
|
||||||
import Test.Hspec
|
|
||||||
|
|
||||||
import FileSystem.FileOperations.CopyDirRecursiveSpec
|
|
||||||
import FileSystem.FileOperations.CopyDirRecursiveOverwriteSpec
|
|
||||||
import FileSystem.FileOperations.CopyFileOverwriteSpec
|
|
||||||
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.MoveFileOverwriteSpec
|
|
||||||
import FileSystem.FileOperations.RecreateSymlinkSpec
|
|
||||||
import FileSystem.FileOperations.RenameFileSpec
|
|
||||||
import Utils
|
|
||||||
|
|
||||||
|
|
||||||
-- TODO: chardev, blockdev, namedpipe, socket
|
|
||||||
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main = hspec $ before_ fixPermissions $ after_ revertPermissions $ do
|
|
||||||
let tests = [copyFileSpec
|
|
||||||
,copyFileOverwriteSpec
|
|
||||||
,copyDirRecursiveSpec
|
|
||||||
,copyDirRecursiveOverwriteSpec
|
|
||||||
,createDirSpec
|
|
||||||
,createRegularFileSpec
|
|
||||||
,renameFileSpec
|
|
||||||
,moveFileSpec
|
|
||||||
,moveFileOverwriteSpec
|
|
||||||
,recreateSymlinkSpec
|
|
||||||
,deleteFileSpec
|
|
||||||
,deleteDirSpec
|
|
||||||
,deleteDirRecursiveSpec
|
|
||||||
]
|
|
||||||
|
|
||||||
-- run all stateful tests twice to catch missing cleanups or state skew
|
|
||||||
sequence_ tests
|
|
||||||
sequence_ tests
|
|
||||||
|
|
||||||
-- stateless tests
|
|
||||||
getFileTypeSpec
|
|
||||||
getDirsFilesSpec
|
|
||||||
|
|
||||||
where
|
|
||||||
noWriteDirs = ["test/FileSystem/FileOperations/copyFileSpec/outputDirNoWrite"
|
|
||||||
,"test/FileSystem/FileOperations/copyFileOverwriteSpec/outputDirNoWrite"
|
|
||||||
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noWritePerm"
|
|
||||||
,"test/FileSystem/FileOperations/copyDirRecursiveOverwriteSpec/noWritePerm"
|
|
||||||
,"test/FileSystem/FileOperations/createDirSpec/noWritePerms"
|
|
||||||
,"test/FileSystem/FileOperations/createRegularFileSpec/noWritePerms"
|
|
||||||
,"test/FileSystem/FileOperations/renameFileSpec/noWritePerm"
|
|
||||||
,"test/FileSystem/FileOperations/moveFileSpec/noWritePerm"
|
|
||||||
,"test/FileSystem/FileOperations/moveFileOverwriteSpec/noWritePerm"
|
|
||||||
,"test/FileSystem/FileOperations/recreateSymlinkSpec/noWritePerm"
|
|
||||||
]
|
|
||||||
noPermsDirs = ["test/FileSystem/FileOperations/copyFileSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/copyFileOverwriteSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/copyDirRecursiveSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/copyDirRecursiveOverwriteSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/createDirSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/createRegularFileSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/renameFileSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/moveFileSpec/noPerms"
|
|
||||||
,"test/FileSystem/FileOperations/moveFileOverwriteSpec/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
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user