65 lines
1.7 KiB
Haskell
65 lines
1.7 KiB
Haskell
{-# 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
|