diff options
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 51 |
1 files changed, 49 insertions, 2 deletions
@@ -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> |