X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FMachine.hs;fp=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FMachine.hs;h=0000000000000000000000000000000000000000;hb=ae334dce13ab47fd20b976a17b1f296e082c7531;hp=f407c7d7d44e5a4359c42972b4c0de9356a30f25;hpb=92f1ae3d69a580eee74755a38a647e27c4f164ff;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test/Machine.hs b/src/Language/Haskell/LSP/Test/Machine.hs deleted file mode 100644 index f407c7d..0000000 --- a/src/Language/Haskell/LSP/Test/Machine.hs +++ /dev/null @@ -1,37 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} -module Language.Haskell.LSP.Test.Machine where - -import Control.Monad.IO.Class -import Language.Haskell.LSP.Messages -import Language.Haskell.LSP.Test - -data State = State String (FromServerMessage -> Bool) [Session ()] State - | Passed - | Failed - -data Event = Timeout | Received FromServerMessage - -advance :: State -> Event -> Session State -advance _ Timeout = return Failed -advance s@(State name f actions next) (Received msg) - | f msg = do - liftIO $ putStrLn name - sequence_ actions - return next - | otherwise = return s -advance s _ = return s - -mkStates [] = Passed -mkStates ((n, f, msgs):xs) = State n f msgs (mkStates xs) - -runMachine :: String -> [(String, FromServerMessage -> Bool, [Session ()])] -> IO String -runMachine rootDir encodedStates = - runSession "hie --lsp" rootDir $ do - let f Passed = return Passed - f s = Received <$> anyMessage >>= advance s >>= f - initState = mkStates encodedStates - res <- f initState - case res of - Passed -> return "passed" - _ -> return "failed" -