From 1c40fe5562029ffcaccb8030ab03462805acaab6 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 17:19:14 +0200 Subject: [PATCH] Improve invoker test No issue, as this is more about the MavenInvoker UTs. When invocation was throwing (and some test cases expect that), the whole maven output and possible errors were lost, making it hard to figure out in case of unexpected exit. Now the test always emit, even if (expected) InvocationEx is being thrown. --- .../invoker/mvn/MavenInvokerTestSupport.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/impl/maven-cli/src/test/java/org/apache/maven/cling/invoker/mvn/MavenInvokerTestSupport.java b/impl/maven-cli/src/test/java/org/apache/maven/cling/invoker/mvn/MavenInvokerTestSupport.java index 49b3f852759a..a50bc24b6104 100644 --- a/impl/maven-cli/src/test/java/org/apache/maven/cling/invoker/mvn/MavenInvokerTestSupport.java +++ b/impl/maven-cli/src/test/java/org/apache/maven/cling/invoker/mvn/MavenInvokerTestSupport.java @@ -109,14 +109,20 @@ protected Map invoke(Path cwd, Path userHome, Collection ByteArrayOutputStream stderr = new ByteArrayOutputStream(); List mvnArgs = new ArrayList<>(args); mvnArgs.add(goal); - int exitCode = invoker.invoke( - parser.parseInvocation(ParserRequest.mvn(mvnArgs, new JLineMessageBuilderFactory()) - .cwd(cwd) - .userHome(userHome) - .stdOut(stdout) - .stdErr(stderr) - .embedded(true) - .build())); + int exitCode = -1; + Exception exception = null; + try { + exitCode = invoker.invoke( + parser.parseInvocation(ParserRequest.mvn(mvnArgs, new JLineMessageBuilderFactory()) + .cwd(cwd) + .userHome(userHome) + .stdOut(stdout) + .stdErr(stderr) + .embedded(true) + .build())); + } catch (Exception e) { + exception = e; + } // dump things out System.out.println("==================================================="); @@ -132,7 +138,11 @@ protected Map invoke(Path cwd, Path userHome, Collection System.err.println("==================================================="); logs.put(goal, stdout.toString()); - assertEquals(0, exitCode, "OUT:" + stdout + "\nERR:" + stderr); + if (exception != null) { + throw exception; + } else { + assertEquals(0, exitCode, "OUT:" + stdout + "\nERR:" + stderr); + } } } return logs;