aboutsummaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'build.xml')
-rw-r--r--build.xml51
1 files changed, 49 insertions, 2 deletions
diff --git a/build.xml b/build.xml
index 5083bedf..960d4644 100644
--- a/build.xml
+++ b/build.xml
@@ -327,13 +327,60 @@ the common tasks and can be called on to run the main aspects of all the sub-scr
</java>
</target>
- <target name="test" depends="-test-compile, dist, test-ecj" unless="tests.skip" description="Runs the tests.">
+ <target name="-loadTestEnvironmentProperties">
+ <property file="testenvironment.properties" />
+ </target>
+
+ <target name="setupJava6TestEnvironment" description="Sets up the test so that 'ant test' will test against OpenJDK6.">
+ <mkdir dir="lib/openJDK6Environment" />
+ <get src="http://projectlombok.org/ivyrepo/langtools/javac-1.6.0.18.jar" dest="lib/openJDK6Environment/javac6.jar" verbose="true" usetimestamp="true" />
+ <get src="http://projectlombok.org/ivyrepo/langtools/rt-openjdk6.jar" dest="lib/openJDK6Environment/rt-openjdk6.jar" verbose="true" usetimestamp="true" />
+ <propertyfile file="testenvironment.properties">
+ <entry key="test.location.javac" value="lib/openJDK6Environment/javac6.jar" />
+ <entry key="test.location.bootclasspath" value="lib/openJDK6Environment/rt-openjdk6.jar" />
+ </propertyfile>
+ <echo>Tests will now run against OpenJDK6</echo>
+ </target>
+
+ <target name="setupJava7TestEnvironment" description="Sets up the test so that 'ant test' will test against OpenJDK7.">
+ <mkdir dir="lib/openJDK7Environment" />
+ <get src="http://projectlombok.org/ivyrepo/langtools/javac-1.7.0.jar" dest="lib/openJDK7Environment/javac7.jar" verbose="true" usetimestamp="true" />
+ <get src="http://projectlombok.org/ivyrepo/langtools/rt-openjdk7.jar" dest="lib/openJDK7Environment/rt-openjdk7.jar" verbose="true" usetimestamp="true" />
+ <propertyfile file="testenvironment.properties">
+ <entry key="test.location.javac" value="lib/openJDK7Environment/javac7.jar" />
+ <entry key="test.location.bootclasspath" value="lib/openJDK7Environment/rt-openjdk7.jar" />
+ </propertyfile>
+ <echo>Tests will now run against OpenJDK7</echo>
+ </target>
+
+ <target name="-failIfNoTestEnvironmentProperties" unless="test.location.javac">
+ <fail unless="test.location.javac">ERROR: No test environment set up.
+
+You need to set up a test environment, which consists of a version of javac, and a JRE runtime classpath ('rt.jar').
+Eventually, this environment concept will be extended to also includes an ecj and/or eclipse to test against.
+
+You can let this ant script set them up for you:
+
+* ant setupJava6TestEnvironment
+* ant setupJava7TestEnvironment
+
+These will set up test environments based on OpenJDK6 and OpenJDK7 and some recent version of eclipse, and download all required files automatically. This will be a relatively large download. You can switch by running this command again; the downloads are cached so switching is fast.
+
+You can also create your own by writing a 'testenvironment.properties' file. The relevant properties are:
+
+* test.location.javac = /path/to/javac6.jar
+* test.location.bootclasspath = /path/to/rt.jar
+</fail>
+ </target>
+
+ <target name="test" depends="-loadTestEnvironmentProperties, -failIfNoTestEnvironmentProperties, -test-compile, dist, test-ecj" unless="tests.skip" description="Runs the tests.">
<junit haltonfailure="yes" fork="true">
<jvmarg value="-javaagent:dist/lombok.jar" />
+ <jvmarg value="-Ddelombok.bootclasspath=${test.location.bootclasspath}" />
<formatter type="plain" usefile="false" unless="tests.quiet" />
<classpath refid="test.path" />
<classpath refid="eclipseBuild.path" />
- <classpath path="lib/javac6/javac6.jar" />
+ <classpath path="${test.location.javac}" />
<classpath path="build/lombok" />
<classpath path="build/tests" />
<batchtest>