Simplify test suite

pull/357/head
Taylor Fausak 2021-11-28 13:24:11 +00:00 committed by GitHub
parent cddb98b124
commit 8f2625dc87
1 changed files with 13 additions and 26 deletions
source/test-suite

View File

@ -1,14 +1,12 @@
import qualified Control.Exception as Exception
import qualified Control.Monad as Monad
import qualified Data.List as List
import qualified Language.Haskell.Brittany.Main as Brittany
import qualified System.Directory as Directory
import qualified System.FilePath as FilePath
import qualified System.IO as IO
import qualified Test.Hspec as Hspec
main :: IO ()
main = Hspec.hspec $ do
main = Hspec.hspec . Hspec.parallel $ do
let directory = "data"
entries <- Hspec.runIO $ Directory.listDirectory directory
Monad.forM_ (List.sort entries) $ \entry ->
@ -17,31 +15,20 @@ main = Hspec.hspec $ do
Just slug -> Hspec.it slug $ do
let input = FilePath.combine directory entry
expected <- readFile input
actual <- withTemporaryFile $ \output handle -> do
IO.hClose handle
Directory.copyFile input output
Brittany.mainWith
"brittany"
[ "--config-file"
, FilePath.combine directory "brittany.yaml"
, "--no-user-config"
, "--write-mode"
, "inplace"
, output
]
readFile output
let output = FilePath.combine "output" entry
Directory.copyFile input output
Brittany.mainWith
"brittany"
[ "--config-file"
, FilePath.combine directory "brittany.yaml"
, "--no-user-config"
, "--write-mode"
, "inplace"
, output
]
actual <- readFile output
Literal actual `Hspec.shouldBe` Literal expected
withTemporaryFile :: (FilePath -> IO.Handle -> IO a) -> IO a
withTemporaryFile callback = do
directory <- Directory.getTemporaryDirectory
let
acquire = IO.openTempFile directory "brittany-.hs"
release filePath handle = do
IO.hClose handle
Directory.removeFile filePath
Exception.bracket acquire (uncurry release) (uncurry callback)
newtype Literal
= Literal String
deriving Eq