From 516a806a96ae12a60dfb671d126996e200d56aca Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 27 May 2024 23:54:55 +0800 Subject: [PATCH 1/3] add withLongTimeout --- ghcide/test/exe/CradleTests.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ghcide/test/exe/CradleTests.hs b/ghcide/test/exe/CradleTests.hs index ca922d53cc..f3a42141be 100644 --- a/ghcide/test/exe/CradleTests.hs +++ b/ghcide/test/exe/CradleTests.hs @@ -125,7 +125,7 @@ multiTestName :: FilePath -> String -> String multiTestName dir name = "simple-" ++ dir ++ "-" ++ name simpleMultiTest :: FilePath -> TestTree -simpleMultiTest variant = testCase (multiTestName variant "test") $ runWithExtraFiles variant $ \dir -> do +simpleMultiTest variant = testCase (multiTestName variant "test") $ withLongTimeout $ runWithExtraFiles variant $ \dir -> do let aPath = dir "a/A.hs" bPath = dir "b/B.hs" adoc <- openDoc aPath "haskell" From cec35a3baf48a8c120be1bee8a9aa302fd3df9ea Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 29 May 2024 20:23:58 +0800 Subject: [PATCH 2/3] add repeat test script --- repeatTest.bash | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100755 repeatTest.bash diff --git a/repeatTest.bash b/repeatTest.bash new file mode 100755 index 0000000000..d6ad6cb21e --- /dev/null +++ b/repeatTest.bash @@ -0,0 +1,11 @@ +#!/bin/bash + +# recommended to build test binary separately and then run it in a loop (to avoid running cabal test in a loop) +# Run tests in a loop +for i in {1..500}; do + echo "Iteration $i" && + HLS_TEST_LOG_STDERR=1 TASTY_PATTERN="simple-multi-def-test" cabal test ghcide-tests \ + || { + echo "Warning: error at iteration $i" + break + }; done From 47a61dcfd8e6bca0bec01df3d8909ef6d1dedffd Mon Sep 17 00:00:00 2001 From: Patrick Date: Fri, 31 May 2024 16:57:43 +0800 Subject: [PATCH 3/3] wait until reference ready --- ghcide/test/exe/CradleTests.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ghcide/test/exe/CradleTests.hs b/ghcide/test/exe/CradleTests.hs index f3a42141be..eb8067c0d2 100644 --- a/ghcide/test/exe/CradleTests.hs +++ b/ghcide/test/exe/CradleTests.hs @@ -125,7 +125,7 @@ multiTestName :: FilePath -> String -> String multiTestName dir name = "simple-" ++ dir ++ "-" ++ name simpleMultiTest :: FilePath -> TestTree -simpleMultiTest variant = testCase (multiTestName variant "test") $ withLongTimeout $ runWithExtraFiles variant $ \dir -> do +simpleMultiTest variant = testCase (multiTestName variant "test") $ runWithExtraFiles variant $ \dir -> do let aPath = dir "a/A.hs" bPath = dir "b/B.hs" adoc <- openDoc aPath "haskell" @@ -134,6 +134,7 @@ simpleMultiTest variant = testCase (multiTestName variant "test") $ withLongTime liftIO $ assertBool "A should typecheck" ideResultSuccess WaitForIdeRuleResult {..} <- waitForAction "TypeCheck" bdoc liftIO $ assertBool "B should typecheck" ideResultSuccess + skipManyTill anyMessage $ isReferenceReady bPath locs <- getDefinitions bdoc (Position 2 7) let fooL = mkL (adoc ^. L.uri) 2 0 2 3 checkDefs locs (pure [fooL])