diff --git a/ghcide/bench/lib/Experiments.hs b/ghcide/bench/lib/Experiments.hs index 80035ba119..7b3ffbb642 100644 --- a/ghcide/bench/lib/Experiments.hs +++ b/ghcide/bench/lib/Experiments.hs @@ -76,7 +76,10 @@ experiments = bench "edit" $ \docs -> do forM_ docs $ \DocumentPositions{..} -> changeDoc doc [charEdit stringLiteralP] - waitForProgressDone -- TODO check that this waits for all of them + -- wait for a fresh build start + waitForProgressStart + -- wait for the build to be finished + waitForProgressDone return True, --------------------------------------------------------------------------------------- bench "hover after edit" $ \docs -> do @@ -390,6 +393,12 @@ data BenchRun = BenchRun badRun :: BenchRun badRun = BenchRun 0 0 0 0 0 False +waitForProgressStart :: Session () +waitForProgressStart = void $ do + skipManyTill anyMessage $ satisfy $ \case + FromServerMess SWindowWorkDoneProgressCreate _ -> True + _ -> False + -- | Wait for all progress to be done -- Needs at least one progress done notification to return waitForProgressDone :: Session ()