Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move ghcide-tests to haskell-language-server.cabal and make it depend on hls-test-utils #4176

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 0 additions & 98 deletions ghcide/ghcide.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -297,101 +297,3 @@ library ghcide-test-utils
OverloadedStrings
RecordWildCards
ViewPatterns

test-suite ghcide-tests
import: warnings
type: exitcode-stdio-1.0
default-language: GHC2021
build-tool-depends:
, ghcide:ghcide
, ghcide:ghcide-test-preprocessor
, implicit-hie:gen-hie

build-depends:
, aeson
, async
, base
, containers
, data-default
, directory
, enummapset
, extra
, filepath
, fuzzy
, ghcide
, ghcide:ghcide-test-utils
, hls-plugin-api
, lens
, list-t
, lsp
, lsp-test ^>=0.17.0.0
, lsp-types
, monoid-subclasses
, mtl
, network-uri
, QuickCheck
, random
, regex-tdfa ^>=1.3.1
, row-types
, shake
, sqlite-simple
, stm
, stm-containers
, tasty
, tasty-expected-failure
, tasty-hunit >=0.10
, tasty-quickcheck
, tasty-rerun
, text
, text-rope
, unordered-containers

if impl(ghc <9.3)
build-depends: ghc-typelits-knownnat

hs-source-dirs: test/exe
ghc-options: -threaded -O0

main-is: Main.hs
other-modules:
AsyncTests
BootTests
ClientSettingsTests
CodeLensTests
CompletionTests
CPPTests
CradleTests
DependentFileTest
DiagnosticTests
ExceptionTests
FindDefinitionAndHoverTests
FuzzySearch
GarbageCollectionTests
HaddockTests
HieDbRetry
HighlightTests
IfaceTests
InitializeResponseTests
LogType
NonLspCommandLine
OpenCloseTest
OutlineTests
PluginSimpleTests
PositionMappingTests
PreprocessorTests
Progress
ReferenceTests
RootUriTests
SafeTests
SymlinkTests
TestUtils
THTests
UnitTests
WatchedFileTests

-- Tests that have been pulled out of the main file
default-extensions:
LambdaCase
OverloadedStrings
RecordWildCards
ViewPatterns
16 changes: 16 additions & 0 deletions ghcide/test/exe/Config.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module Config where
import Ide.Types (defaultPluginDescriptor)
import System.FilePath ((</>))
import Test.Hls (PluginTestDescriptor,
mkPluginTestDescriptor)
import qualified Test.Hls.FileSystem as FS

testDataDir :: FilePath
testDataDir = "ghcide" </> "test" </> "data"

mkIdeTestFs :: [FS.FileTree] -> FS.VirtualFileTree
mkIdeTestFs = FS.mkVirtualFileTree testDataDir

-- * A dummy plugin for testing ghcIde
dummyPlugin :: PluginTestDescriptor ()
dummyPlugin = mkPluginTestDescriptor (\_ pid ->defaultPluginDescriptor pid "dummyTestPlugin") "core"
12 changes: 3 additions & 9 deletions ghcide/test/exe/InitializeResponseTests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,12 @@ import qualified Data.Text as T
import Development.IDE.Plugin.TypeLenses (typeLensCommandId)
import qualified Language.LSP.Protocol.Lens as L
import Language.LSP.Protocol.Message
import Language.LSP.Protocol.Types hiding
(SemanticTokenAbsolute (..),
SemanticTokenRelative (..),
SemanticTokensEdit (..),
mkRange)
import Language.LSP.Test

import Config (dummyPlugin, mkIdeTestFs)
import Control.Lens ((^.))
import Development.IDE.Plugin.Test (blockCommandId)
import Test.Tasty
import Test.Tasty.HUnit
import TestUtils
import Test.Hls

tests :: TestTree
tests = withResource acquire release tests where
Expand Down Expand Up @@ -90,7 +84,7 @@ tests = withResource acquire release tests where
innerCaps (TResponseMessage _ _ (Left _)) = error "Initialization error"

acquire :: IO (TResponseMessage Method_Initialize)
acquire = run initializeResponse
acquire = runSessionWithServerInTmpDir def dummyPlugin (mkIdeTestFs []) initializeResponse

release :: TResponseMessage Method_Initialize -> IO ()
release = mempty
Expand Down
101 changes: 101 additions & 0 deletions haskell-language-server.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -2097,3 +2097,104 @@ benchmark benchmark
, shake-bench == 0.2.*
, text
, yaml


test-suite ghcide-tests
import: warnings
type: exitcode-stdio-1.0
default-language: GHC2021
build-tool-depends:
, ghcide:ghcide
, ghcide:ghcide-test-preprocessor
, implicit-hie:gen-hie

build-depends:
, aeson
, async
, base
, containers
, data-default
, directory
, enummapset
, extra
, filepath
, fuzzy
, ghcide
, ghcide:ghcide-test-utils
, hls-plugin-api
, lens
, list-t
, lsp
, lsp-test ^>=0.17.0.0
, lsp-types
, monoid-subclasses
, mtl
, network-uri
, QuickCheck
, random
, regex-tdfa ^>=1.3.1
, row-types
, shake
, sqlite-simple
, stm
, stm-containers
, tasty
, tasty-expected-failure
, tasty-hunit >=0.10
, tasty-quickcheck
, tasty-rerun
, text
, text-rope
, unordered-containers
, hls-test-utils == 2.7.0.0

if impl(ghc <9.3)
build-depends: ghc-typelits-knownnat

hs-source-dirs: ghcide/test/exe
ghc-options: -threaded -O0

main-is: Main.hs
other-modules:
Config
AsyncTests
BootTests
ClientSettingsTests
CodeLensTests
CompletionTests
CPPTests
CradleTests
DependentFileTest
DiagnosticTests
ExceptionTests
FindDefinitionAndHoverTests
FuzzySearch
GarbageCollectionTests
HaddockTests
HieDbRetry
HighlightTests
IfaceTests
InitializeResponseTests
LogType
NonLspCommandLine
OpenCloseTest
OutlineTests
PluginSimpleTests
PositionMappingTests
PreprocessorTests
Progress
ReferenceTests
RootUriTests
SafeTests
SymlinkTests
TestUtils
THTests
UnitTests
WatchedFileTests

-- Tests that have been pulled out of the main file
default-extensions:
LambdaCase
OverloadedStrings
RecordWildCards
ViewPatterns
Loading