From d5961c6c198863f147f97c8da2005a2a96a77061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Mon, 5 Jun 2023 17:14:27 +0200 Subject: [PATCH 1/3] FUSETOOLS2-1505 - increase timeout to avoid test flakiness MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- .../lsp/internal/diagnostic/CamelDiagnosticTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java index 8f8633e1..32545315 100644 --- a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java +++ b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java @@ -147,7 +147,7 @@ void testValidationErrorClearedOnClose() throws Exception { DidCloseTextDocumentParams params = new DidCloseTextDocumentParams(new TextDocumentIdentifier(DUMMY_URI+".xml")); camelLanguageServer.getTextDocumentService().didClose(params); - await().timeout(AWAIT_TIMEOUT).untilAsserted(() -> assertThat(lastPublishedDiagnostics.getDiagnostics()).isEmpty()); + await().timeout(AWAIT_TIMEOUT.multipliedBy(2)).untilAsserted(() -> assertThat(lastPublishedDiagnostics.getDiagnostics()).isEmpty()); } @Test From c73cffc0aad1ed4acf3acb106dfd190512030375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Mon, 5 Jun 2023 17:17:43 +0200 Subject: [PATCH 2/3] try to add traces --- .../lsp/internal/diagnostic/DiagnosticRunner.java | 9 +++++++-- .../lsp/internal/AbstractCamelLanguageServerTest.java | 1 + .../lsp/internal/diagnostic/CamelDiagnosticTest.java | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/cameltooling/lsp/internal/diagnostic/DiagnosticRunner.java b/src/main/java/com/github/cameltooling/lsp/internal/diagnostic/DiagnosticRunner.java index f1ee537a..ee4e1b03 100644 --- a/src/main/java/com/github/cameltooling/lsp/internal/diagnostic/DiagnosticRunner.java +++ b/src/main/java/com/github/cameltooling/lsp/internal/diagnostic/DiagnosticRunner.java @@ -79,8 +79,12 @@ public void computeDiagnostics(String camelText, TextDocumentItem documentItem) diagnostics.addAll(configurationPropertiesDiagnosticService.converToLSPDiagnostics(configurationPropertiesErrors)); diagnostics.addAll(camelKModelineDiagnosticService.compute(camelText, documentItem)); diagnostics.addAll(connectedModeDiagnosticService.compute(camelText, documentItem)); - camelLanguageServer.getClient().publishDiagnostics(new PublishDiagnosticsParams(uri, diagnostics)); - lastTriggeredDiagnostic.remove(uri); + if(!Thread.currentThread().isInterrupted()) { + camelLanguageServer.getClient().publishDiagnostics(new PublishDiagnosticsParams(uri, diagnostics)); + lastTriggeredDiagnostic.remove(uri); + } else { + System.out.println("### Thread was interrupted (i.e. Future for diagnostic cancelled)"); + } }); lastTriggeredDiagnostic.put(uri, lastTriggeredComputation); } @@ -97,6 +101,7 @@ public void clear(String uri) { CompletableFuture previousComputation = lastTriggeredDiagnostic.get(uri); if (previousComputation != null) { previousComputation.cancel(true); + lastTriggeredDiagnostic.remove(uri); } camelLanguageServer.getClient().publishDiagnostics(new PublishDiagnosticsParams(uri, Collections.emptyList())); } diff --git a/src/test/java/com/github/cameltooling/lsp/internal/AbstractCamelLanguageServerTest.java b/src/test/java/com/github/cameltooling/lsp/internal/AbstractCamelLanguageServerTest.java index bc1faad3..d2e7c967 100644 --- a/src/test/java/com/github/cameltooling/lsp/internal/AbstractCamelLanguageServerTest.java +++ b/src/test/java/com/github/cameltooling/lsp/internal/AbstractCamelLanguageServerTest.java @@ -136,6 +136,7 @@ public void showMessage(MessageParams messageParams) { @Override public void publishDiagnostics(PublishDiagnosticsParams diagnostics) { + System.out.println("Published Diagnostics " + diagnostics.getUri() +" "+ diagnostics.getDiagnostics().size()); AbstractCamelLanguageServerTest.this.lastPublishedDiagnostics = diagnostics; } diff --git a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java index 32545315..499f4e7f 100644 --- a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java +++ b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/CamelDiagnosticTest.java @@ -142,16 +142,22 @@ void testNoExceptionOnInvalidJavaFile() throws Exception { @Test void testValidationErrorClearedOnClose() throws Exception { + System.out.println("### Starting testValidationErrorClearedOnClose test "); testDiagnostic("camel-with-endpoint-error", 1, ".xml"); + System.out.println("### Will close"); + DidCloseTextDocumentParams params = new DidCloseTextDocumentParams(new TextDocumentIdentifier(DUMMY_URI+".xml")); camelLanguageServer.getTextDocumentService().didClose(params); + System.out.println("### didClose sent"); + await().timeout(AWAIT_TIMEOUT.multipliedBy(2)).untilAsserted(() -> assertThat(lastPublishedDiagnostics.getDiagnostics()).isEmpty()); } @Test void testValidationErrorUpdatedOnChange() throws Exception { + System.out.println("### Starting testValidationErrorUpdatedOnChange test "); testDiagnostic("camel-with-endpoint-error", 1, ".xml"); camelLanguageServer.getTextDocumentService().getOpenedDocument(DUMMY_URI+".xml").getText(); From 10f9354d86829bbdb42822efe0627dca638ad6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Wed, 7 Jun 2023 10:48:29 +0200 Subject: [PATCH 3/3] add another conditional wait to avoid tests influencing each others --- .../lsp/internal/diagnostic/AbstractDiagnosticTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/AbstractDiagnosticTest.java b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/AbstractDiagnosticTest.java index 844328c4..f69707f0 100644 --- a/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/AbstractDiagnosticTest.java +++ b/src/test/java/com/github/cameltooling/lsp/internal/diagnostic/AbstractDiagnosticTest.java @@ -53,6 +53,9 @@ protected void testDiagnostic(String fileUnderTest, int expectedNumberOfError, S protected void testDiagnostic(File file, int expectedNumberOfError, String extension) throws FileNotFoundException { camelLanguageServer = initializeLanguageServer(new FileInputStream(file), extension); + createAwait().untilAsserted(() -> assertThat(lastPublishedDiagnostics).isNotNull()); + createAwait().untilAsserted(() -> assertThat(lastPublishedDiagnostics.getDiagnostics()).isEmpty()); + DidSaveTextDocumentParams params = new DidSaveTextDocumentParams(new TextDocumentIdentifier(DUMMY_URI+extension)); camelLanguageServer.getTextDocumentService().didSave(params);