language-ocaml-0.1.31: test/Language/OCaml/Parser/Structure/Test.hs
{-# LANGUAGE QuasiQuotes #-}
module Language.OCaml.Parser.Structure.Test
( test
, testStrings
, unitTests
) where
import Data.String.Interpolate
import Test.Tasty
import Language.OCaml.Parser.Internal
import qualified Language.OCaml.Parser.Payload.Test as Payload
import qualified Language.OCaml.Parser.PostItemAttributes.Test as PostItemAttributes
import qualified Language.OCaml.Parser.SeqExpr.Test as SeqExpr
import qualified Language.OCaml.Parser.StructureTail.Test as StructureTail
import Language.OCaml.Parser.TestUtils
limit :: Int
limit = 2
testStrings :: [String]
testStrings = []
++ [ [i|#{se} #{pia} #{st}|]
| se <- seqExpr
, pia <- postItemAttributes
, st <- structureTail
]
where
payload = take limit $ Payload.testStrings structure
postItemAttributes = take limit $ PostItemAttributes.testStrings payload
seqExpr = take limit $ SeqExpr.testStrings
structure = take limit $ testStrings
structureTail = take limit $ StructureTail.testStrings structure
unitTests :: TestTree
unitTests = testGroup "Language.OCaml.Parser.Structure" $ []
++ map (mkParsingTest "structureP" structureP) testStrings
test :: IO ()
test = defaultMain unitTests
-- debug = debugParsing structureP (structureTests !! 9)