From: Luke Lau Date: Mon, 25 Nov 2019 17:24:41 +0000 (+0000) Subject: Merge branch 'master' into github-actions X-Git-Url: https://git.lukelau.me/?p=lsp-test.git;a=commitdiff_plain;h=803c622b2a390a310584d9f8170c9ec1c8ea67db;hp=95ef237e5b1c60385d20faefb5408f41908ad791 Merge branch 'master' into github-actions --- diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index e4cdf76..7d90328 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -1,32 +1,61 @@ name: Haskell CI on: [push] - jobs: build: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + + env: + hieref: 52691a63087ceb585c8bdc2ea04b52df3b2eddf1 + + strategy: + matrix: + ghc: ['8.6.5'] + os: [ubuntu-latest, macOS-latest] steps: - uses: actions/checkout@v1 - - uses: actions/setup-haskell@v1 + - uses: bubba/setup-haskell@macos-ghcup with: - ghc-version: '8.6.5' + ghc-version: ${{ matrix.ghc }} cabal-version: '3.0' - run: cabal update - - name: Install HIE + + - name: Clone HIE + uses: actions/checkout@v1 + with: + repository: mpickering/haskell-ide-engine + submodules: recursive + ref: ${{ env.hieref }} + path: haskell-ide-engine + + - name: Cache Cabal + uses: actions/cache@v1 + with: + path: ~/.cabal + key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-${{ hashFiles('../**/*.cabal') }} + restore-keys: | + ${{ runner.OS }}-${{ matrix.ghc }}-cabal + + - name: Build HIE run: | - pushd $HOME - git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules - cd haskell-ide-engine + # if [ -e $HOME/.cabal/bin/hie ]; then + # echo "hie is already built" + # exit 0 + # fi + pushd ../haskell-ide-engine cabal install hie cabal install hoogle - export PATH=$PATH:$HOME/.cabal/bin hoogle generate popd + cabal v1-install Cabal --constraint "Cabal == 3.0.0.0" + - name: Install JS Language Server + run: npm install javascript-typescript-langserver - name: Build run: cabal build - - name: Test - run: | - export PATH=$PATH:$HOME/.cabal/bin - cabal test + # - name: Test + # run: | + # echo $PATH + # export PATH=$PATH:$(npm bin) + # cabal run lsp-test:test:tests diff --git a/README.md b/README.md index ce452fe..9f0251b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# lsp-test [![Build Status](https://travis-ci.com/bubba/lsp-test.svg?branch=master)](https://travis-ci.com/bubba/lsp-test) [![Hackage](https://img.shields.io/hackage/v/lsp-test.svg)](https://hackage.haskell.org/package/lsp-test-0.1.0.0) +# lsp-test [![Actions Status](https://github.com/bubba/lsp-test/workflows/Haskell%20CI/badge.svg)](https://github.com/bubba/lsp-test/actions) [![Hackage](https://img.shields.io/hackage/v/lsp-test.svg)](https://hackage.haskell.org/package/lsp-test-0.1.0.0) lsp-test is a functional testing framework for Language Server Protocol servers. ```haskell diff --git a/test/Test.hs b/test/Test.hs index 342d889..22f8e21 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -16,7 +16,7 @@ import Control.Monad import Control.Lens hiding (List) import GHC.Generics import Language.Haskell.LSP.Messages -import Language.Haskell.LSP.Test +import Language.Haskell.LSP.Test hiding (runSession) import Language.Haskell.LSP.Test.Replay import Language.Haskell.LSP.Types import Language.Haskell.LSP.Types.Lens as LSP hiding @@ -27,6 +27,8 @@ import System.Timeout {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-} {-# ANN module ("HLint: ignore Unnecessary hiding" :: String) #-} +runSession = runSessionWithConfig (defaultConfig { logStdErr = True }) + main = hspec $ do describe "Session" $ do it "fails a test" $ @@ -44,7 +46,7 @@ main = hspec $ do describe "withTimeout" $ do it "times out" $ - let sesh = runSession "hie" fullCaps "test/data/renamePass" $ do + let sesh = runSession "hie -d --bios-verbose" fullCaps "test/data/renamePass" $ do openDoc "Desktop/simple.hs" "haskell" -- won't receive a request - will timeout -- incoming logging requests shouldn't increase the