language-hcl-0.1.1.0: bench/HCLBenchmark.hs
import Control.Arrow ((>>>))
import Control.Monad
import Criterion.Main
import Data.HCL
import qualified Data.Text.IO as Text (readFile)
import System.Directory (getDirectoryContents)
import System.FilePath (takeExtension, (</>))
main :: IO ()
main = do
allFixtures <-
filter (/= "unterminated_brace.hcl") .
filter (/= "unterminated_block_comment.hcl") .
filter (/= "multiline_no_marker.hcl") .
filter (/= "multiline_bad.hcl") .
filter (takeExtension >>> (== ".hcl")) <$>
getDirectoryContents "./test-fixtures"
bs <- forM allFixtures $ \fixture -> do
print fixture
input <- Text.readFile ("./test-fixtures" </> fixture)
input `seq` return ()
return $ bench fixture $ nf
(\i -> let Right h = parseHCL "" i in h) input
defaultMain [ bgroup "parseHCL" bs
]