From 25cd95f2d158b0eac4fc6789fc1a753500977297 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 16:16:42 +0300 Subject: [PATCH 01/14] #2896: Wait when the test fail --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index d28755dda2..67933c01bc 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -35,8 +35,9 @@ import org.eolang.maven.log.CaptureLogs; import org.eolang.maven.log.Logs; import org.eolang.maven.util.HmBase; +import org.hamcrest.MatcherAssert; +import org.hamcrest.Matchers; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -70,7 +71,6 @@ void doesNotFailWithNoErrorsAndWarnings(@TempDir final Path temp) { } @Test - @Disabled @CaptureLogs void detectsErrorsSuccessfully( @TempDir final Path temp, @@ -89,6 +89,11 @@ void detectsErrorsSuccessfully( "Program with noname attributes should have failed or error, but it didn't" ); final String message = this.getMessage(out, "Errors identified"); + MatcherAssert.assertThat( + "Errors message should have program name and error line number", + message, + Matchers.matchesPattern(this.createRegEx(temp, "Errors identified")) + ); Assertions.assertTrue( message.matches(this.createRegEx(temp, "Errors identified")), "Errors message should have program name and error line number" From 10b5ca66984a5b342229a0297951d78cad346df5 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 16:27:32 +0300 Subject: [PATCH 02/14] #2896: Does not throw exception --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 67933c01bc..40f8c5c4ae 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -104,7 +104,7 @@ void detectsErrorsSuccessfully( @CaptureLogs void detectsCriticalErrorsSuccessfully( @TempDir final Path temp, - final Logs out) throws Exception { + final Logs out) { Assertions.assertThrows( IllegalStateException.class, () -> new FakeMaven(temp) From 59dbf33a8be1b69718a9faa57d42ead16d4f99b2 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 16:41:09 +0300 Subject: [PATCH 03/14] #2896: Does not throw exception --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 40f8c5c4ae..67933c01bc 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -104,7 +104,7 @@ void detectsErrorsSuccessfully( @CaptureLogs void detectsCriticalErrorsSuccessfully( @TempDir final Path temp, - final Logs out) { + final Logs out) throws Exception { Assertions.assertThrows( IllegalStateException.class, () -> new FakeMaven(temp) From fbce38abbe647c36d47124e3ac6d85d1d1cd166d Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 16:50:54 +0300 Subject: [PATCH 04/14] #2896: Does not throw exception --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 67933c01bc..40f8c5c4ae 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -104,7 +104,7 @@ void detectsErrorsSuccessfully( @CaptureLogs void detectsCriticalErrorsSuccessfully( @TempDir final Path temp, - final Logs out) throws Exception { + final Logs out) { Assertions.assertThrows( IllegalStateException.class, () -> new FakeMaven(temp) From e75f006ccb4bb10720e7079f4cab2c01cd402bb5 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 17:00:47 +0300 Subject: [PATCH 05/14] #2896: Does not throw exception --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 40f8c5c4ae..67933c01bc 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -104,7 +104,7 @@ void detectsErrorsSuccessfully( @CaptureLogs void detectsCriticalErrorsSuccessfully( @TempDir final Path temp, - final Logs out) { + final Logs out) throws Exception { Assertions.assertThrows( IllegalStateException.class, () -> new FakeMaven(temp) From 9574fe1c6b805b5c8464ef138844fd71b05bc9ea Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 4 Mar 2024 17:19:34 +0300 Subject: [PATCH 06/14] #2896: Does not throw exception --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 67933c01bc..40f8c5c4ae 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -104,7 +104,7 @@ void detectsErrorsSuccessfully( @CaptureLogs void detectsCriticalErrorsSuccessfully( @TempDir final Path temp, - final Logs out) throws Exception { + final Logs out) { Assertions.assertThrows( IllegalStateException.class, () -> new FakeMaven(temp) From b3161eb7328cc9856573660cac971c4b985fe56f Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 15 Apr 2024 18:00:21 +0300 Subject: [PATCH 07/14] #2896: Filter by path --- .../java/org/eolang/maven/VerifyMojoTest.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index a9dc36139f..9bfb2e71a3 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -31,6 +31,8 @@ import com.yegor256.xsline.TrDefault; import com.yegor256.xsline.Xsline; import java.nio.file.Path; +import java.util.Arrays; + import org.cactoos.io.ResourceOf; import org.eolang.maven.log.CaptureLogs; import org.eolang.maven.log.Logs; @@ -51,11 +53,6 @@ * /org/eolang/parser/warnings/mandatory-version-meta.xsl and * /org/eolang/parser/warnings/mandatory-home-meta.xsl. * After you need fix {@code createRegEx()}. - * @todo #2890:30min Fix this {@link VerifyMojoTest#detectsErrorsSuccessfully} - * flaky test and enable it. It failed in ci - * here - * without providing the regex and message. Also may be it would be cleaner to fix - * error Assertion since now it is hard to get why it failed. */ @SuppressWarnings({"PMD.AvoidDuplicateLiterals", "PMD.TooManyMethods"}) final class VerifyMojoTest { @@ -88,7 +85,9 @@ void detectsErrorsSuccessfully( .execute(new FakeMaven.Verify()), "Program with noname attributes should have failed or error, but it didn't" ); - final String message = this.getMessage(out, "Errors identified"); + System.out.println(temp.toString()); + final String message = this.getMessage(out, "Errors identified", temp.toString()); + System.out.println(message); MatcherAssert.assertThat( "Errors message should have program name and error line number", message, @@ -117,7 +116,7 @@ void detectsCriticalErrorsSuccessfully( .execute(new FakeMaven.Verify()), "Wrong program should have failed or error, but it didn't" ); - final String message = this.getMessage(out, "Critical error identified"); + final String message = this.getMessage(out, "Critical error identified", temp.toString()); Assertions.assertTrue( message.matches(this.createRegEx(temp, "Critical error identified")), "Critical error message should have program name and error line number" @@ -144,7 +143,7 @@ void detectsWarningWithCorrespondingFlag( .execute(new FakeMaven.Verify()), "Program with sparse decorated object should have failed on warning, but it didn't" ); - final String message = this.getMessage(out, "Warnings identified"); + final String message = this.getMessage(out, "Warnings identified", temp.toString()); Assertions.assertTrue( message.matches(this.createRegEx(temp, "Warnings identified")), "Warnings message should have program name and error line number" @@ -272,12 +271,12 @@ private static void applyXsl(final String xsl, final Path xml) throws Exception /** * Parse the error message to program name and error line number for checking. * @param logs Logs logs - * @param error String needed error message + * @param parts String needed error message */ - private String getMessage(final Logs logs, final String error) { + private String getMessage(final Logs logs, final String ... parts) { return String.valueOf(logs.captured().stream() .filter( - log -> log.contains(error) + log -> Arrays.stream(parts).allMatch(log::contains) ).findFirst() ); } From be964c44e73815f62c2e11ba1919c43077046b28 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 15 Apr 2024 18:00:31 +0300 Subject: [PATCH 08/14] #2896: Leaved todo --- .../src/test/java/org/eolang/maven/log/CaptureLogs.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java index b0dd4fe18f..e74ecdccf7 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java @@ -42,6 +42,9 @@ /** * Captured logs annotation for tests. + * @todo #2896:90min Logs should contains only messages related to + * the test. Now it appends all messages that were logged via Logger, + * so massages from other tests(in parallel) are included too. */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) From f493abdbff1e004e773cfbdd52ac3baf9e5736ad Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 15 Apr 2024 18:04:29 +0300 Subject: [PATCH 09/14] #2896: Improved Assertion --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 9bfb2e71a3..3024e5d6f9 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -32,7 +32,6 @@ import com.yegor256.xsline.Xsline; import java.nio.file.Path; import java.util.Arrays; - import org.cactoos.io.ResourceOf; import org.eolang.maven.log.CaptureLogs; import org.eolang.maven.log.Logs; @@ -85,18 +84,12 @@ void detectsErrorsSuccessfully( .execute(new FakeMaven.Verify()), "Program with noname attributes should have failed or error, but it didn't" ); - System.out.println(temp.toString()); final String message = this.getMessage(out, "Errors identified", temp.toString()); - System.out.println(message); MatcherAssert.assertThat( "Errors message should have program name and error line number", message, Matchers.matchesPattern(this.createRegEx(temp, "Errors identified")) ); - Assertions.assertTrue( - message.matches(this.createRegEx(temp, "Errors identified")), - "Errors message should have program name and error line number" - ); } @Test From 1ac17d7b5ab5a0ef3ff4f430fe4693f31eb397b2 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Mon, 15 Apr 2024 18:09:19 +0300 Subject: [PATCH 10/14] #2896: Pqulice violation --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 3024e5d6f9..3d4949591c 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -266,7 +266,7 @@ private static void applyXsl(final String xsl, final Path xml) throws Exception * @param logs Logs logs * @param parts String needed error message */ - private String getMessage(final Logs logs, final String ... parts) { + private String getMessage(final Logs logs, final String... parts) { return String.valueOf(logs.captured().stream() .filter( log -> Arrays.stream(parts).allMatch(log::contains) From 512e3607fc22bcf1e435ae3f9265abe4df441031 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Tue, 16 Apr 2024 11:56:36 +0300 Subject: [PATCH 11/14] #2896: Edited todo --- .../src/test/java/org/eolang/maven/log/CaptureLogs.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java index e74ecdccf7..ba90d641fc 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java @@ -42,9 +42,12 @@ /** * Captured logs annotation for tests. - * @todo #2896:90min Logs should contains only messages related to - * the test. Now it appends all messages that were logged via Logger, - * so massages from other tests(in parallel) are included too. + * @todo #2896:90min Make '@CaptureLogs' thread-safe. + * 'Logs' should contain only messages related to the test. + * Currently, '@CaptureLogs' appends all messages that + * were logged via 'Logger' to 'Logs', so messages from + * other tests (run in parallel) are also included, which causes + * problems when tests are run in parallel. */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) From 158643effb9e8d7fa7c487ed980deecc5235d959 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Tue, 16 Apr 2024 11:56:53 +0300 Subject: [PATCH 12/14] #2896: Inlined variable --- .../src/test/java/org/eolang/maven/VerifyMojoTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java index 3d4949591c..be094e11b8 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/VerifyMojoTest.java @@ -84,10 +84,9 @@ void detectsErrorsSuccessfully( .execute(new FakeMaven.Verify()), "Program with noname attributes should have failed or error, but it didn't" ); - final String message = this.getMessage(out, "Errors identified", temp.toString()); MatcherAssert.assertThat( "Errors message should have program name and error line number", - message, + this.getMessage(out, "Errors identified", temp.toString()), Matchers.matchesPattern(this.createRegEx(temp, "Errors identified")) ); } From a1575aab097cd8dd4fbba180b916950fa0c891f9 Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Tue, 16 Apr 2024 12:03:04 +0300 Subject: [PATCH 13/14] #2896: Restart ci --- .../src/test/java/org/eolang/maven/log/CaptureLogs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java index ba90d641fc..8287f01113 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java @@ -61,7 +61,7 @@ * @since 0.30 */ final class CaptureLogsExtension implements - ParameterResolver, BeforeEachCallback, AfterEachCallback { + ParameterResolver, BeforeEachCallback, AfterEachCallback { /** * Logs. From 42bb26d4636ba0513d528bc3f853831b9fb21c5c Mon Sep 17 00:00:00 2001 From: levBagryansky <28lev11@gmail.com> Date: Tue, 16 Apr 2024 12:03:13 +0300 Subject: [PATCH 14/14] #2896: Restart ci --- .../src/test/java/org/eolang/maven/log/CaptureLogs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java index 8287f01113..ba90d641fc 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/log/CaptureLogs.java @@ -61,7 +61,7 @@ * @since 0.30 */ final class CaptureLogsExtension implements - ParameterResolver, BeforeEachCallback, AfterEachCallback { + ParameterResolver, BeforeEachCallback, AfterEachCallback { /** * Logs.