diff --git a/test/optparse-test/Main.hs b/test/optparse-test/Main.hs index 0430e36..213774d 100644 --- a/test/optparse-test/Main.hs +++ b/test/optparse-test/Main.hs @@ -13,6 +13,7 @@ import qualified UpgradeTest import qualified CompileTest import qualified WhereisTest import qualified GCTest +import qualified RunTest main :: IO () main = defaultMain $ testGroup "ghcup" @@ -28,4 +29,5 @@ main = defaultMain $ testGroup "ghcup" , CompileTest.compileTests , WhereisTest.whereisTests , GCTest.gcTests + , RunTest.runTests ] diff --git a/test/optparse-test/RunTest.hs b/test/optparse-test/RunTest.hs index 8655e3d..f32f25e 100644 --- a/test/optparse-test/RunTest.hs +++ b/test/optparse-test/RunTest.hs @@ -1,8 +1,11 @@ +{-# LANGUAGE OverloadedStrings #-} + module RunTest where import Test.Tasty import GHCup.OptParse import Utils +import GHCup.Types runTests :: TestTree @@ -23,7 +26,33 @@ defaultOptions = [] runCheckList :: [(String, RunOptions)] -runCheckList = [] +runCheckList = + [ ("run", defaultOptions) + , ("run -a", defaultOptions{runAppendPATH = True}) + , ("run --append", defaultOptions{runAppendPATH = True}) + , ("run -i", defaultOptions{runInstTool' = True}) + , ("run --install", defaultOptions{runInstTool' = True}) + , ("run -m", defaultOptions{runMinGWPath = True}) + , ("run --mingw-path", defaultOptions{runMinGWPath = True}) + , ("run --ghc 9.2.8", defaultOptions{runGHCVer = Just $ GHCVersion $ mkTVer $ mkVersion' "9.2.8"}) + , ("run --ghc latest", defaultOptions{runGHCVer = Just $ ToolTag Latest}) + , ("run --cabal 3.10", defaultOptions{runCabalVer = Just $ ToolVersion $ mkVersion' "3.10"}) + , ("run --hls 2.0", defaultOptions{runHLSVer = Just $ ToolVersion $ mkVersion' "2.0"}) + , ("run --stack 2.9", defaultOptions{runStackVer = Just $ ToolVersion $ mkVersion' "2.9"}) + , ("run -b /tmp/dir", defaultOptions{runBinDir = Just "/tmp/dir"}) + , ("run --bindir /tmp/dir", defaultOptions{runBinDir = Just "/tmp/dir"}) + , ("run -q", defaultOptions{runQuick = True}) + , ("run --quick", defaultOptions{runQuick = True}) + , ("run --ghc latest --cabal 3.10 --stack 2.9 --hls 2.0 --install", + defaultOptions + { runGHCVer = Just $ ToolTag Latest + , runCabalVer = Just $ ToolVersion $ mkVersion' "3.10" + , runHLSVer = Just $ ToolVersion $ mkVersion' "2.0" + , runStackVer = Just $ ToolVersion $ mkVersion' "2.9" + , runInstTool' = True + } + ) + ] runParseWith :: [String] -> IO RunOptions runParseWith args = do