[testing] improve the output of ant test.

This commit is contained in:
Reinier Zwitserloot committed 2021-03-19 02:14:24 +01:00
1 parent 0c6a243c8e
commit dcb7efcc0e
2 files changed
+81 -12

No files matched your search

+20 -12
View File
@@ -24,6 +24,13 @@
This buildfile is part of projectlombok.org. It takes care of compiling and running tests.
</description>
<target name="test.formatter.compile" depends="deps">
<mkdir dir="build/ant" />
<javac includeantruntime="true" srcdir="src/support" includes="**/SimpleTestFormatter.java" destdir="build/ant">
<classpath refid="cp.test" />
</javac>
</target>
<target name="test.compile" depends="deps, compile" description="compiles the tests" unless="skip.tests">
<mkdir dir="build/tests" />
<ivy:compile destdir="build/teststubs" source="1.6" target="1.6" ecj="true" nowarn="true">
@@ -57,32 +64,33 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<property name="test.limitmodules">--limit-modules java.base,jdk.unsupported</property>
<target name="test.javac6" depends="test.compile" description="runs the tests on your default VM, using javac6 as underlying compiler">
<target name="test.javac6" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac6 as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with lowest supported javac: 1.6.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
<jvmarg value="-Xbootclasspath/a:${jdk6-rt.loc}" />
<jvmarg line="${test.limitmodules}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk6-rt.loc}" />
<jvmarg value="-Dsun.boot.class.path=${jdk6-rt.loc}" />
<formatter type="plain" usefile="false" unless="tests.quiet" />
<formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.javac6" />
<classpath refid="packing.basedirs.path" />
<classpath location="build/ant" />
<classpath location="build/tests" />
<classpath location="build/teststubs" />
<test name="lombok.TestJavac" />
</junit>
</target>
<target name="test.javac8" depends="test.compile, deps.jdk8-runtime" description="runs the tests on your default VM, using javac8 as underlying compiler">
<target name="test.javac8" depends="test.formatter.compile, test.compile, deps.jdk8-runtime" description="runs the tests on your default VM, using javac8 as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with javac: 1.8.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
<jvmarg value="-Xbootclasspath/a:${jdk8-rt.loc}" />
<jvmarg line="${test.limitmodules}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk8-rt.loc}" />
<jvmarg value="-Dsun.boot.class.path=${jdk8-rt.loc}" />
<formatter type="plain" usefile="false" unless="tests.quiet" />
<formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.javac8" />
@@ -100,7 +108,7 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<echo>Running TestJavac with JVM ${jvm.loc.@{version}}.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once" jvm="${jvm.loc.@{version}}/bin/${exe.java}">
<formatter type="plain" usefile="false" unless="tests.quiet" />
<formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="packing.basedirs.path" />
@@ -111,18 +119,18 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
</sequential>
</macrodef>
<target name="test.javac11" depends="test.compile" description="runs the tests on your default VM, using javac11 as underlying compiler">
<target name="test.javac11" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac11 as underlying compiler">
<test.javacX version="11" />
</target>
<target name="test.javac14" depends="test.compile" description="runs the tests on your default VM, using javac14 as underlying compiler">
<target name="test.javac14" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac14 as underlying compiler">
<test.javacX version="14" />
</target>
<target name="test.javacCurrent" depends="test.compile" description="runs the tests on your default VM, using its javac as underlying compiler">
<target name="test.javacCurrent" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using its javac as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with the javac built into your VM distributon.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
<formatter type="plain" usefile="false" unless="tests.quiet" />
<formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="packing.basedirs.path" />
@@ -140,7 +148,7 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<jvmarg value="-Xbootclasspath/a:${jdk8-rt.loc}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk8-rt.loc}" />
<jvmarg value="-javaagent:dist/lombok.jar" />
<formatter type="plain" usefile="false" unless="tests.quiet" />
<formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.eclipse-@{version}" />
@@ -151,11 +159,11 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
</sequential>
</macrodef>
<target name="test.eclipse-oxygen" depends="test.compile" description="runs the tests on your default VM, testing the oxygen release of eclipse">
<target name="test.eclipse-oxygen" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, testing the oxygen release of eclipse">
<test.eclipse-X version="oxygen" />
</target>
<target name="test.eclipse-202006" depends="test.compile" description="runs the tests on your default VM, testing the 2020-03 release of eclipse">
<target name="test.eclipse-202006" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, testing the 2020-03 release of eclipse">
<fetchdep.eclipse version="202006" />
<test.eclipse-X version="202006" />
</target>
@@ -0,0 +1,61 @@
package lombok.ant;
import java.io.OutputStream;
import java.io.PrintStream;
import junit.framework.AssertionFailedError;
import junit.framework.Test;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter;
import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
public class SimpleTestFormatter implements JUnitResultFormatter {
private PrintStream out = System.out;
@Override
public void addError(Test test, Throwable error) {
logResult(test, "ERR");
out.println(error.getMessage());
}
@Override
public void addFailure(Test test, AssertionFailedError failure) {
logResult(test, "FAIL");
out.println(failure.getMessage());
}
@Override
public void endTest(Test test) {
logResult(test, "PASS");
}
@Override
public void startTest(Test test) { }
@Override
public void endTestSuite(JUnitTest testSuite) throws BuildException { }
@Override
public void setOutput(OutputStream out) {
this.out = new PrintStream(out);
}
@Override
public void setSystemError(String err) {
// don't echo test error output
}
@Override
public void setSystemOutput(String out) {
// don't echo test output
}
@Override
public void startTestSuite(JUnitTest testSuite) throws BuildException { }
private void logResult(Test test, String result) {
out.println("[" + result + "] " + String.valueOf(test));
out.flush();
}
}