whereis test
This commit is contained in:
parent
f23631054a
commit
2726e83235
@ -54,6 +54,7 @@ data WhereisCommand = WhereisTool Tool (Maybe ToolVersion)
|
|||||||
| WhereisCacheDir
|
| WhereisCacheDir
|
||||||
| WhereisLogsDir
|
| WhereisLogsDir
|
||||||
| WhereisConfDir
|
| WhereisConfDir
|
||||||
|
deriving (Eq, Show)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -66,7 +67,7 @@ data WhereisCommand = WhereisTool Tool (Maybe ToolVersion)
|
|||||||
|
|
||||||
data WhereisOptions = WhereisOptions {
|
data WhereisOptions = WhereisOptions {
|
||||||
directory :: Bool
|
directory :: Bool
|
||||||
}
|
} deriving (Eq, Show)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -427,6 +427,7 @@ test-suite ghcup-optparse-test
|
|||||||
ListTest
|
ListTest
|
||||||
UpgradeTest
|
UpgradeTest
|
||||||
CompileTest
|
CompileTest
|
||||||
|
WhereisTest
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
build-depends: base, ghcup, ghcup-optparse, tasty, tasty-hunit, optparse-applicative, versions, text, uri-bytestring
|
build-depends: base, ghcup, ghcup-optparse, tasty, tasty-hunit, optparse-applicative, versions, text, uri-bytestring
|
||||||
|
@ -11,6 +11,7 @@ import qualified RmTest
|
|||||||
import qualified ListTest
|
import qualified ListTest
|
||||||
import qualified UpgradeTest
|
import qualified UpgradeTest
|
||||||
import qualified CompileTest
|
import qualified CompileTest
|
||||||
|
import qualified WhereisTest
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = defaultMain $ testGroup "ghcup"
|
main = defaultMain $ testGroup "ghcup"
|
||||||
@ -24,4 +25,5 @@ main = defaultMain $ testGroup "ghcup"
|
|||||||
, ListTest.listTests
|
, ListTest.listTests
|
||||||
, UpgradeTest.upgradeTests
|
, UpgradeTest.upgradeTests
|
||||||
, CompileTest.compileTests
|
, CompileTest.compileTests
|
||||||
|
, WhereisTest.whereisTests
|
||||||
]
|
]
|
||||||
|
40
test/optparse-test/WhereisTest.hs
Normal file
40
test/optparse-test/WhereisTest.hs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
|
||||||
|
module WhereisTest where
|
||||||
|
|
||||||
|
import Test.Tasty
|
||||||
|
import GHCup.OptParse
|
||||||
|
import Utils
|
||||||
|
import GHCup.Types
|
||||||
|
|
||||||
|
whereisTests :: TestTree
|
||||||
|
whereisTests = buildTestTree whereisParseWith ("whereis", whereisCheckList)
|
||||||
|
|
||||||
|
whereisCheckList :: [(String, (WhereisOptions, WhereisCommand))]
|
||||||
|
whereisCheckList = concatMap mk
|
||||||
|
[ ("whereis ghc", WhereisTool GHC Nothing)
|
||||||
|
, ("whereis ghc 9.2.8", WhereisTool GHC (Just $ GHCVersion $ mkTVer $ mkVersion' "9.2.8"))
|
||||||
|
, ("whereis ghc ghc-9.2.8", WhereisTool GHC (Just $ GHCVersion $ GHCTargetVersion (Just "ghc") (mkVersion' "9.2.8")))
|
||||||
|
, ("whereis ghc latest", WhereisTool GHC (Just $ ToolTag Latest))
|
||||||
|
, ("whereis cabal", WhereisTool Cabal Nothing)
|
||||||
|
, ("whereis hls", WhereisTool HLS Nothing)
|
||||||
|
, ("whereis stack", WhereisTool Stack Nothing)
|
||||||
|
, ("whereis ghcup", WhereisTool GHCup Nothing)
|
||||||
|
, ("whereis basedir", WhereisBaseDir)
|
||||||
|
, ("whereis bindir", WhereisBinDir)
|
||||||
|
, ("whereis cachedir", WhereisCacheDir)
|
||||||
|
, ("whereis logsdir", WhereisLogsDir)
|
||||||
|
, ("whereis confdir", WhereisConfDir)
|
||||||
|
]
|
||||||
|
where
|
||||||
|
mk :: (String, WhereisCommand) -> [(String, (WhereisOptions, WhereisCommand))]
|
||||||
|
mk (cmd, res) =
|
||||||
|
[ (cmd, (WhereisOptions False, res))
|
||||||
|
, (cmd <> " -d", (WhereisOptions True, res))
|
||||||
|
, (cmd <> " --directory", (WhereisOptions True, res))
|
||||||
|
]
|
||||||
|
|
||||||
|
whereisParseWith :: [String] -> IO (WhereisOptions, WhereisCommand)
|
||||||
|
whereisParseWith args = do
|
||||||
|
Whereis a b <- parseWith args
|
||||||
|
pure (a, b)
|
Loading…
Reference in New Issue
Block a user