compile test
This commit is contained in:
64
test/optparse-test/CompileTest.hs
Normal file
64
test/optparse-test/CompileTest.hs
Normal file
@@ -0,0 +1,64 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module CompileTest where
|
||||
|
||||
import Test.Tasty
|
||||
import GHCup.OptParse
|
||||
import Utils
|
||||
import GHCup.GHC
|
||||
import Data.Versions
|
||||
import GHCup.Types
|
||||
|
||||
|
||||
compileTests :: TestTree
|
||||
compileTests = testGroup "compile"
|
||||
$ map (buildTestTree compileParseWith)
|
||||
[ ("ghc", compileGhcCheckList)
|
||||
, ("hls", compileHlsCheckList)
|
||||
]
|
||||
|
||||
mkDefaultGHCCompileOptions :: GHCVer -> Either Version FilePath -> GHCCompileOptions
|
||||
mkDefaultGHCCompileOptions target boot =
|
||||
GHCCompileOptions
|
||||
target
|
||||
boot
|
||||
Nothing
|
||||
Nothing
|
||||
(Just $ Right [])
|
||||
Nothing
|
||||
[]
|
||||
False
|
||||
Nothing
|
||||
Nothing
|
||||
False
|
||||
Nothing
|
||||
|
||||
compileGhcCheckList :: [(String, CompileCommand)]
|
||||
compileGhcCheckList = mapSecond CompileGHC
|
||||
[ ("compile ghc -v 9.4.5 -b 9.2.8", mkDefaultGHCCompileOptions
|
||||
(SourceDist $ mkVersion' "9.4.5")
|
||||
(Left $ mkVersion' "9.2.8")
|
||||
)
|
||||
, ("compile ghc -g a32db0b -b 9.2.8", mkDefaultGHCCompileOptions
|
||||
(GitDist $ GitBranch "a32db0b" Nothing)
|
||||
(Left $ mkVersion' "9.2.8")
|
||||
)
|
||||
, ("compile ghc -g a32db0b -b 9.2.8 -r https://gitlab.haskell.org/ghc/ghc.git",
|
||||
mkDefaultGHCCompileOptions
|
||||
(GitDist $ GitBranch "a32db0b" (Just "https://gitlab.haskell.org/ghc/ghc.git"))
|
||||
(Left $ mkVersion' "9.2.8")
|
||||
)
|
||||
, ("compile ghc -g a32db0b -r https://gitlab.haskell.org/ghc/ghc.git -b /usr/bin/ghc-9.2.2",
|
||||
mkDefaultGHCCompileOptions
|
||||
(GitDist $ GitBranch "a32db0b" (Just "https://gitlab.haskell.org/ghc/ghc.git"))
|
||||
(Right "/usr/bin/ghc-9.2.2")
|
||||
)
|
||||
]
|
||||
|
||||
compileHlsCheckList :: [(String, CompileCommand)]
|
||||
compileHlsCheckList = []
|
||||
|
||||
compileParseWith :: [String] -> IO CompileCommand
|
||||
compileParseWith args = do
|
||||
Compile a <- parseWith args
|
||||
pure a
|
||||
Reference in New Issue
Block a user