diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Main.hs | 5 | ||||
-rw-r--r-- | src/Parser.hs | 7 | ||||
-rw-r--r-- | src/Test.hs | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/Main.hs b/src/Main.hs index 2c16a16..d4134bd 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -190,6 +190,11 @@ runTest tool test = do p <- getProcess net pname expect p regex + Wait -> do + putStr "Waiting..." + hFlush stdout + void $ getLine + exitNetwork net main :: IO () diff --git a/src/Parser.hs b/src/Parser.hs index 97a64fc..d4c5a13 100644 --- a/src/Parser.hs +++ b/src/Parser.hs @@ -110,9 +110,14 @@ testExpect = do pname <- procName return $ Expect pname re +testWait :: TestParser TestStep +testWait = do + wsymbol "wait" + return $ Wait + parseTestDefinition :: TestParser Test parseTestDefinition = label "test definition" $ toplevel $ do - block (\name steps -> return $ Test name steps) header (testSpawn <|> testSend <|> testExpect) + block (\name steps -> return $ Test name steps) header (testSpawn <|> testSend <|> testExpect <|> testWait) where header = do wsymbol "test" lexeme $ TL.toStrict <$> takeWhileP (Just "test name") (/=':') diff --git a/src/Test.hs b/src/Test.hs index f26e67a..8136afb 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -19,6 +19,7 @@ data Test = Test data TestStep = Spawn ProcName NodeName | Send ProcName Text | Expect ProcName Regex + | Wait newtype ProcName = ProcName Text deriving (Eq, Ord) |