Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit 536edec

Browse files
committed
Update tests to select libdir based on cradle
1 parent 249c1fe commit 536edec

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

haskell-ide-engine.cabal

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ test-suite plugin-dispatcher-test
246246
main-is: Main.hs
247247
build-depends: base
248248
, data-default
249+
, directory
250+
, filepath
249251
, haskell-ide-engine
250252
, haskell-lsp-types
251253
, hie-plugin-api

test/dispatcher/Main.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import qualified Data.Text as T
1313
import Data.Default
1414
import GHC ( TypecheckedModule )
1515
import GHC.Generics
16+
import qualified Haskell.Ide.Engine.Cradle as Bios
1617
import Haskell.Ide.Engine.MonadTypes
1718
import Haskell.Ide.Engine.PluginUtils
1819
import Haskell.Ide.Engine.Scheduler
@@ -25,7 +26,7 @@ import System.FilePath
2526

2627
import Test.Hspec
2728
import Test.Hspec.Runner
28-
import System.IO
29+
import System.IO
2930

3031
-- ---------------------------------------------------------------------
3132
-- plugins
@@ -71,14 +72,16 @@ startServer :: IO (Scheduler IO, TChan LogVal, ThreadId)
7172
startServer = do
7273
scheduler <- newScheduler plugins testOptions
7374
logChan <- newTChanIO
75+
cwd <- getCurrentDirectory
76+
crdl <- Bios.findLocalCradle (cwd </> "File.hs")
7477
dispatcher <- forkIO $ do
7578
flushStackEnvironment
7679
runScheduler
7780
scheduler
7881
(\lid errCode e -> logToChan logChan ("received an error", Left (lid, errCode, e)))
7982
(\g x -> g x)
8083
def
81-
Nothing
84+
(Just crdl)
8285

8386
return (scheduler, logChan, dispatcher)
8487

test/plugin-dispatcher/Main.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ import Control.Concurrent.STM.TChan
77
import Control.Monad.STM
88
import qualified Data.Text as T
99
import Data.Default
10+
import qualified Haskell.Ide.Engine.Cradle as Bios
1011
import Haskell.Ide.Engine.MonadTypes
1112
import Haskell.Ide.Engine.Scheduler
1213
import Haskell.Ide.Engine.Types
1314
import Language.Haskell.LSP.Types
1415
import TestUtils
1516
import Test.Hspec
1617
import Test.Hspec.Runner
18+
import System.Directory (getCurrentDirectory)
19+
import System.FilePath
1720

1821
-- ---------------------------------------------------------------------
1922

@@ -42,11 +45,14 @@ newPluginSpec = do
4245

4346
let makeReq = sendRequest scheduler
4447

48+
cwd <- getCurrentDirectory
49+
crdl <- Bios.findLocalCradle (cwd </> "File.hs")
50+
4551
pid <- forkIO $ runScheduler scheduler
4652
(\_ _ _ -> return ())
4753
(\f x -> f x)
4854
def
49-
Nothing
55+
(Just crdl)
5056

5157
updateDocument scheduler (filePathToUri "test") 3
5258
sendRequest scheduler req0

test/utils/TestUtils.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import Data.Maybe
3131
-- import qualified GhcMod.Types as GM
3232
import qualified Language.Haskell.LSP.Core as Core
3333
import Haskell.Ide.Engine.MonadTypes
34+
import qualified Haskell.Ide.Engine.Cradle as Bios
3435
import System.Directory
3536
import System.Environment
3637
import System.FilePath
@@ -74,7 +75,10 @@ makeRequest plugin com arg = runPluginCommand plugin com (toJSON arg)
7475
runIGM :: IdePlugins -> IdeGhcM a -> IO a
7576
runIGM testPlugins f = do
7677
stateVar <- newTVarIO $ IdeState emptyModuleCache Map.empty Map.empty Nothing
77-
runIdeGhcM Nothing testPlugins Nothing stateVar f
78+
cwd <- getCurrentDirectory
79+
crdl <- Bios.findLocalCradle (cwd </> "File.hs")
80+
mlibdir <- Bios.getProjectGhcLibDir crdl
81+
runIdeGhcM mlibdir testPlugins Nothing stateVar f
7882

7983
withFileLogging :: FilePath -> IO a -> IO a
8084
withFileLogging logFile f = do

0 commit comments

Comments
 (0)