X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=lib%2FLanguage%2FHaskell%2FLSP%2FTest%2FMachine.hs;h=7e0a78d247a41838014a7e099245480d4242a35e;hb=54b23e6b7a8aa59e649a807ab286f0808908935a;hp=f407c7d7d44e5a4359c42972b4c0de9356a30f25;hpb=f01fb33a61da785ec470a204069f718e5e7fef78;p=lsp-test.git diff --git a/lib/Language/Haskell/LSP/Test/Machine.hs b/lib/Language/Haskell/LSP/Test/Machine.hs index f407c7d..7e0a78d 100644 --- a/lib/Language/Haskell/LSP/Test/Machine.hs +++ b/lib/Language/Haskell/LSP/Test/Machine.hs @@ -24,14 +24,14 @@ 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 +runMachine :: String -> FilePath -> [(String, FromServerMessage -> Bool, [Session ()])] -> IO Bool +runMachine cmd rootDir encodedStates = + runSession cmd 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" + Passed -> return True + _ -> return False