Thu, 07 Feb 2013 17:17:29 +0530
8007715: Make sure that not all tests run with AllPermission
Reviewed-by: lagergren, attila
jlaskey@3 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
jlaskey@3 | 2 | <!-- |
jlaskey@7 | 3 | Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. |
jlaskey@3 | 4 | DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
jlaskey@3 | 5 | |
jlaskey@3 | 6 | This code is free software; you can redistribute it and/or modify it |
jlaskey@3 | 7 | under the terms of the GNU General Public License version 2 only, as |
jlaskey@3 | 8 | published by the Free Software Foundation. |
jlaskey@3 | 9 | |
jlaskey@3 | 10 | This code is distributed in the hope that it will be useful, but WITHOUT |
jlaskey@3 | 11 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
jlaskey@3 | 12 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
jlaskey@3 | 13 | version 2 for more details (a copy is included in the LICENSE file that |
jlaskey@3 | 14 | accompanied this code). |
jlaskey@3 | 15 | |
jlaskey@3 | 16 | You should have received a copy of the GNU General Public License version |
jlaskey@3 | 17 | 2 along with this work; if not, write to the Free Software Foundation, |
jlaskey@3 | 18 | Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
jlaskey@3 | 19 | |
jlaskey@3 | 20 | Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
jlaskey@3 | 21 | or visit www.oracle.com if you need additional information or have any |
jlaskey@3 | 22 | questions. |
jlaskey@3 | 23 | --> |
jlaskey@3 | 24 | <project name="nashorn" default="all" basedir=".."> |
jlaskey@3 | 25 | <import file="build-nasgen.xml"/> |
jlaskey@3 | 26 | <import file="build-benchmark.xml"/> |
jlaskey@3 | 27 | |
jlaskey@3 | 28 | <target name="init"> |
jlaskey@3 | 29 | <loadproperties srcFile="make/project.properties"/> |
jlaskey@3 | 30 | <path id="nashorn.ext.path"> |
jlaskey@3 | 31 | <pathelement location="${dist.dir}"/> |
jlaskey@3 | 32 | </path> |
jlaskey@3 | 33 | <property name="ext.class.path" value="-Djava.ext.dirs="${toString:nashorn.ext.path}""/> |
sundar@19 | 34 | <condition property="svn.executable" value="/usr/local/bin/svn" else="svn"> |
sundar@19 | 35 | <available file="/usr/local/bin/svn"/> |
sundar@19 | 36 | </condition> |
sundar@19 | 37 | <condition property="hg.executable" value="/usr/local/bin/hg" else="hg"> |
sundar@19 | 38 | <available file="/usr/local/bin/hg"/> |
sundar@19 | 39 | </condition> |
sundar@26 | 40 | <!-- check if JDK already has ASM classes --> |
sundar@26 | 41 | <available property="asm.available" classname="jdk.internal.org.objectweb.asm.Type"/> |
sundar@26 | 42 | <!-- check if testng.jar is avaiable --> |
sundar@26 | 43 | <available property="testng.available" file="${file.reference.testng.jar}"/> |
jlaskey@3 | 44 | </target> |
jlaskey@3 | 45 | |
jlaskey@3 | 46 | <target name="prepare" depends="init"> |
jlaskey@3 | 47 | <mkdir dir="${build.dir}"/> |
jlaskey@3 | 48 | <mkdir dir="${build.classes.dir}"/> |
jlaskey@3 | 49 | <mkdir dir="${build.classes.dir}/META-INF/services"/> |
jlaskey@3 | 50 | <mkdir dir="${build.test.classes.dir}"/> |
jlaskey@3 | 51 | <mkdir dir="${dist.dir}"/> |
jlaskey@3 | 52 | <mkdir dir="${dist.javadoc.dir}"/> |
jlaskey@3 | 53 | </target> |
jlaskey@3 | 54 | |
jlaskey@3 | 55 | <target name="clean" depends="init, clean-nasgen"> |
jlaskey@3 | 56 | <delete includeemptydirs="true"> |
jlaskey@3 | 57 | <fileset dir="${build.dir}" excludes="${dynalink.dir.name}/**/*" erroronmissingdir="false"/> |
jlaskey@3 | 58 | </delete> |
jlaskey@3 | 59 | <delete dir="${dist.dir}"/> |
jlaskey@3 | 60 | </target> |
jlaskey@3 | 61 | |
jlaskey@3 | 62 | <target name="clean-dynalink"> |
jlaskey@3 | 63 | <delete dir="${dynalink.dir}"/> |
jlaskey@3 | 64 | </target> |
jlaskey@3 | 65 | |
jlaskey@3 | 66 | <target name="clean-all" depends="clean-dynalink, clean"> |
jlaskey@3 | 67 | <delete dir="${build.dir}"/> |
jlaskey@3 | 68 | </target> |
jlaskey@3 | 69 | |
jlaskey@3 | 70 | <!-- do it only if ASM is not available --> |
jlaskey@3 | 71 | <target name="compile-asm" depends="prepare" unless="asm.available"> |
sundar@10 | 72 | <javac srcdir="${jdk.asm.src.dir}" |
jlaskey@3 | 73 | destdir="${build.classes.dir}" |
jlaskey@3 | 74 | excludes="**/optimizer/* **/xml/* **/attrs/*" |
jlaskey@3 | 75 | source="${javac.source}" |
jlaskey@3 | 76 | target="${javac.target}" |
jlaskey@3 | 77 | debug="${javac.debug}" |
jlaskey@3 | 78 | encoding="${javac.encoding}" |
jlaskey@3 | 79 | includeantruntime="false"/> |
jlaskey@3 | 80 | </target> |
jlaskey@3 | 81 | |
jlaskey@3 | 82 | <target name="check-dynalink-uptodate" depends="init"> |
jlaskey@3 | 83 | <property name="versioned.dynalink.jar" value="${dynalink.dir}/dynalink-${dynalink.jar.version}.jar"/> |
jlaskey@3 | 84 | <condition property="dynalink.uptodate"> |
jlaskey@3 | 85 | <and> |
jlaskey@3 | 86 | <available file="${versioned.dynalink.jar}"/> |
jlaskey@3 | 87 | <filesmatch file1="${versioned.dynalink.jar}" file2="${dynalink.jar}"/> |
jlaskey@3 | 88 | </and> |
jlaskey@3 | 89 | </condition> |
jlaskey@3 | 90 | </target> |
jlaskey@3 | 91 | |
jlaskey@3 | 92 | <target name="get-dynalink" depends="check-dynalink-uptodate" unless="dynalink.uptodate"> |
jlaskey@3 | 93 | <mkdir dir="${dynalink.dir}"/> |
jlaskey@3 | 94 | <!-- Delete previous snapshots, if any --> |
jlaskey@3 | 95 | <delete> |
jlaskey@3 | 96 | <fileset dir="${dynalink.dir}" includes="*"/> |
jlaskey@3 | 97 | </delete> |
jlaskey@3 | 98 | <property name="dynalink.download.base.url" value="http://oss.sonatype.org/content/repositories/${dynalink.version.type}s/org/dynalang/dynalink/${dynalink.version}/dynalink-${dynalink.jar.version}"/> |
jlaskey@3 | 99 | <get src="${dynalink.download.base.url}.jar" dest="${versioned.dynalink.jar}" usetimestamp="true"/> |
jlaskey@3 | 100 | <get src="${dynalink.download.base.url}-sources.jar" dest="${dynalink.dir}/dynalink-sources.jar" usetimestamp="true"/> |
jlaskey@3 | 101 | <copy file="${versioned.dynalink.jar}" tofile="${dynalink.jar}" overwrite="true"/> |
jlaskey@3 | 102 | </target> |
jlaskey@3 | 103 | |
jlaskey@3 | 104 | <target name="compile" depends="compile-asm, get-dynalink" description="Compiles nashorn"> |
jlaskey@3 | 105 | <javac srcdir="${src.dir}" |
jlaskey@3 | 106 | destdir="${build.classes.dir}" |
jlaskey@3 | 107 | classpath="${javac.classpath}" |
jlaskey@3 | 108 | source="${javac.source}" |
jlaskey@3 | 109 | target="${javac.target}" |
jlaskey@3 | 110 | debug="${javac.debug}" |
jlaskey@3 | 111 | encoding="${javac.encoding}" |
jlaskey@3 | 112 | includeantruntime="false"> |
jlaskey@3 | 113 | <compilerarg value="-Xlint:unchecked"/> |
jlaskey@3 | 114 | <compilerarg value="-Xlint:deprecation"/> |
jlaskey@3 | 115 | <compilerarg value="-XDignore.symbol.file"/> |
jlaskey@3 | 116 | </javac> |
jlaskey@3 | 117 | <copy todir="${build.classes.dir}/META-INF/services"> |
jlaskey@3 | 118 | <fileset dir="${meta.inf.dir}/services/"/> |
jlaskey@3 | 119 | </copy> |
jlaskey@3 | 120 | <copy todir="${build.classes.dir}/jdk/nashorn/api/scripting/resources"> |
jlaskey@3 | 121 | <fileset dir="${src.dir}/jdk/nashorn/api/scripting/resources/"/> |
jlaskey@3 | 122 | </copy> |
jlaskey@3 | 123 | <copy todir="${build.classes.dir}/jdk/nashorn/internal/runtime/resources"> |
jlaskey@3 | 124 | <fileset dir="${src.dir}/jdk/nashorn/internal/runtime/resources/"/> |
jlaskey@3 | 125 | </copy> |
jlaskey@3 | 126 | <copy todir="${build.classes.dir}/jdk/nashorn/tools/resources"> |
jlaskey@3 | 127 | <fileset dir="${src.dir}/jdk/nashorn/tools/resources/"/> |
jlaskey@3 | 128 | </copy> |
jlaskey@3 | 129 | <echo message="full=${nashorn.fullversion}" file="${build.classes.dir}/jdk/nashorn/internal/runtime/resources/version.properties"/> |
jlaskey@3 | 130 | <echo file="${build.classes.dir}/jdk/nashorn/internal/runtime/resources/version.properties" append="true">${line.separator}</echo> |
jlaskey@3 | 131 | <echo message="release=${nashorn.version}" file="${build.classes.dir}/jdk/nashorn/internal/runtime/resources/version.properties" append="true"/> |
jlaskey@3 | 132 | </target> |
jlaskey@3 | 133 | |
jlaskey@3 | 134 | <target name="jar" depends="compile, run-nasgen" description="Creates nashorn.jar"> |
jlaskey@3 | 135 | <jar jarfile="${dist.jar}" manifest="${meta.inf.dir}/MANIFEST.MF" index="true" filesetmanifest="merge"> |
jlaskey@3 | 136 | <fileset dir="${build.classes.dir}"/> |
jlaskey@3 | 137 | <zipfileset src="${dynalink.jar}"/> |
jlaskey@3 | 138 | <manifest> |
jlaskey@3 | 139 | <attribute name="Archiver-Version" value="n/a"/> |
jlaskey@3 | 140 | <attribute name="Build-Jdk" value="${java.runtime.version}"/> |
jlaskey@3 | 141 | <attribute name="Built-By" value="n/a"/> |
jlaskey@3 | 142 | <attribute name="Created-By" value="Ant jar task"/> |
jlaskey@3 | 143 | <section name="jdk/nashorn/"> |
jlaskey@3 | 144 | <attribute name="Implementation-Title" value="${nashorn.product.name}"/> |
jlaskey@3 | 145 | <attribute name="Implementation-Version" value="${nashorn.version}"/> |
jlaskey@3 | 146 | </section> |
jlaskey@3 | 147 | </manifest> |
jlaskey@3 | 148 | </jar> |
jlaskey@3 | 149 | </target> |
jlaskey@3 | 150 | |
sundar@10 | 151 | <target name="javadoc" depends="prepare"> |
sundar@10 | 152 | <javadoc destdir="${dist.javadoc.dir}" use="yes" overview="src/overview.html" windowtitle="${nashorn.product.name} ${nashorn.version}" additionalparam="-quiet" failonerror="true"> |
jlaskey@3 | 153 | <classpath> |
jlaskey@3 | 154 | <pathelement location="${build.classes.dir}"/> |
jlaskey@3 | 155 | <pathelement location="${dynalink.jar}"/> |
jlaskey@3 | 156 | </classpath> |
jlaskey@3 | 157 | <fileset dir="${src.dir}" includes="**/*.java"/> |
sundar@10 | 158 | <fileset dir="${jdk.asm.src.dir}" includes="**/*.java"/> |
sundar@10 | 159 | <link href="http://docs.oracle.com/javase/7/docs/api/"/> |
sundar@10 | 160 | <link href="http://szegedi.github.com/dynalink/0.4/javadoc/"/> |
sundar@10 | 161 | <!-- The following tags are used only in ASM sources - just ignore these --> |
sundar@10 | 162 | <tag name="label" description="label tag in ASM sources" enabled="false"/> |
sundar@10 | 163 | <tag name="linked" description="linked tag in ASM sources" enabled="false"/> |
sundar@10 | 164 | <tag name="associates" description="associates tag in ASM sources" enabled="false"/> |
jlaskey@3 | 165 | </javadoc> |
jlaskey@3 | 166 | </target> |
jlaskey@3 | 167 | |
jlaskey@3 | 168 | <!-- generate shell.html for shell tool documentation --> |
jlaskey@3 | 169 | <target name="shelldoc" depends="jar"> |
jlaskey@3 | 170 | <java classname="${nashorn.shell.tool}" dir="${basedir}" output="${dist.dir}/shell.html" failonerror="true" fork="true"> |
jlaskey@3 | 171 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 172 | <arg value="-scripting"/> |
jlaskey@3 | 173 | <arg value="docs/genshelldoc.js"/> |
jlaskey@3 | 174 | </java> |
jlaskey@3 | 175 | </target> |
jlaskey@3 | 176 | |
jlaskey@3 | 177 | <!-- generate all docs --> |
jlaskey@3 | 178 | <target name="docs" depends="javadoc, shelldoc"/> |
jlaskey@3 | 179 | |
jlaskey@3 | 180 | <!-- create .zip and .tar.gz for nashorn binaries and scripts. --> |
jlaskey@3 | 181 | <target name="dist" depends="jar"> |
jlaskey@3 | 182 | <zip destfile="${build.zip}" basedir=".." |
jlaskey@3 | 183 | excludes="nashorn/bin/*.sh" includes="nashorn/bin/** nashorn/dist/**"/> |
jlaskey@3 | 184 | <tar destfile="${build.gzip}" basedir=".." compression="gzip" |
jlaskey@3 | 185 | excludes="nashorn/bin/*.sh" includes="nashorn/bin/** nashorn/dist/**"/> |
jlaskey@3 | 186 | </target> |
jlaskey@3 | 187 | |
jlaskey@3 | 188 | <target name="compile-test" depends="compile, run-nasgen" if="testng.available"> |
jlaskey@3 | 189 | <!-- testng task --> |
jlaskey@3 | 190 | <taskdef name="testng" classname="org.testng.TestNGAntTask" |
jlaskey@3 | 191 | classpath="${file.reference.testng.jar}"/> |
jlaskey@3 | 192 | |
jlaskey@3 | 193 | <javac srcdir="${test.src.dir}" |
jlaskey@3 | 194 | destdir="${build.test.classes.dir}" |
jlaskey@3 | 195 | classpath="${javac.test.classpath}" |
jlaskey@3 | 196 | source="${javac.source}" |
jlaskey@3 | 197 | target="${javac.target}" |
jlaskey@3 | 198 | debug="${javac.debug}" |
jlaskey@3 | 199 | encoding="${javac.encoding}" |
jlaskey@3 | 200 | includeantruntime="false"/> |
sundar@77 | 201 | |
sundar@77 | 202 | <!-- tests that check nashorn internals and internal API --> |
sundar@77 | 203 | <jar jarfile="${nashorn.internal.tests.jar}"> |
sundar@77 | 204 | <fileset dir="${build.test.classes.dir}" excludes="**/api/scripting/*"/> |
sundar@77 | 205 | </jar> |
sundar@77 | 206 | |
sundar@77 | 207 | <!-- tests that check nashorn script engine (jsr-223) API --> |
sundar@77 | 208 | <jar jarfile="${nashorn.api.tests.jar}"> |
sundar@77 | 209 | <fileset dir="${build.test.classes.dir}" includes="**/api/scripting/*"/> |
sundar@77 | 210 | </jar> |
sundar@77 | 211 | |
jlaskey@3 | 212 | </target> |
jlaskey@3 | 213 | |
jlaskey@3 | 214 | <target name="generate-policy-file"> |
jlaskey@3 | 215 | <!-- Generating nashorn.policy file --> |
sundar@77 | 216 | |
sundar@77 | 217 | <!-- nashorn internal tests jar requires AllPermission --> |
sundar@77 | 218 | <echo message="grant codeBase "file:/${basedir}/${nashorn.internal.tests.jar}" {" file="${build.dir}/nashorn.policy"/> |
jlaskey@3 | 219 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
sundar@77 | 220 | <echo message=" permission java.security.AllPermission;" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 221 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 222 | <echo message="};" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 223 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
sundar@77 | 224 | |
sundar@77 | 225 | <!-- TestNG framework jar needs AllPermission --> |
sundar@77 | 226 | <echo message="grant codeBase "file:/${basedir}/${file.reference.testng.jar}" {" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 227 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 228 | <echo message=" permission java.security.AllPermission;" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 229 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 230 | <echo message="};" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 231 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 232 | |
sundar@77 | 233 | <!-- AllPermission to test/script/trusted tests --> |
sundar@77 | 234 | <echo message="grant codeBase "file:/${basedir}/test/script/trusted/*" {" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 235 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 236 | <echo message=" permission java.security.AllPermission;" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 237 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 238 | <echo message="};" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 239 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 240 | |
jlaskey@3 | 241 | <echo message="grant codeBase "file:/${basedir}/test/script/basic/*" {" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 242 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
sundar@77 | 243 | <!-- test/script/basic .js scripts load other script tests --> |
sundar@77 | 244 | <echo message=" permission java.io.FilePermission "${basedir}/test/script/-", "read";" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 245 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
sundar@77 | 246 | <!-- test/script/basic .js scripts can read nashorn.test.* properties --> |
sundar@77 | 247 | <echo message=" permission java.util.PropertyPermission "nashorn.test.*", "read";" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 248 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 249 | <echo message="};" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 250 | <echo message="" file="${build.dir}/nashorn.policy" append="true"/> |
jlaskey@3 | 251 | |
jlaskey@3 | 252 | <replace file="${build.dir}/nashorn.policy"><replacetoken>\</replacetoken><replacevalue>/</replacevalue></replace> <!--hack for Windows - to make URLs with normal path separators --> |
jlaskey@3 | 253 | <replace file="${build.dir}/nashorn.policy"><replacetoken>//</replacetoken><replacevalue>/</replacevalue></replace> <!--hack for Unix - to avoid leading // in URLs --> |
jlaskey@3 | 254 | |
jlaskey@3 | 255 | </target> |
jlaskey@3 | 256 | |
jlaskey@3 | 257 | <target name="check-external-tests"> |
jlaskey@3 | 258 | <available file="${test.external.dir}/prototype" property="test-sys-prop.external.prototype"/> |
jlaskey@3 | 259 | <available file="${test.external.dir}/sunspider" property="test-sys-prop.external.sunspider"/> |
jlaskey@3 | 260 | <available file="${test.external.dir}/underscore" property="test-sys-prop.external.underscore"/> |
jlaskey@3 | 261 | <available file="${test.external.dir}/octane" property="test-sys-prop.external.octane"/> |
jlaskey@3 | 262 | <available file="${test.external.dir}/yui" property="test-sys-prop.external.yui"/> |
jlaskey@3 | 263 | <available file="${test.external.dir}/jquery" property="test-sys-prop.external.jquery"/> |
jlaskey@3 | 264 | <available file="${test.external.dir}/test262" property="test-sys-prop.external.test262"/> |
jlaskey@3 | 265 | </target> |
jlaskey@3 | 266 | |
jlaskey@3 | 267 | <target name="check-testng" unless="testng.available"> |
jlaskey@3 | 268 | <echo message="WARNING: TestNG not available, will not run tests. Please copy testng.jar under test/lib directory."/> |
jlaskey@3 | 269 | </target> |
jlaskey@3 | 270 | |
jlaskey@3 | 271 | <target name="test" depends="jar, check-testng, check-external-tests, compile-test, generate-policy-file" if="testng.available"> |
jlaskey@3 | 272 | <java classname="${nashorn.shell.tool}" fork="true" dir="${test.script.dir}/representations" output="${build.dir}/output1.log" error="${build.dir}/err.log"> |
jlaskey@3 | 273 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 274 | <jvmarg line="-Dnashorn.fields.dual=true"/> |
jlaskey@3 | 275 | <arg value="NASHORN-592a.js"/> |
jlaskey@3 | 276 | </java> |
jlaskey@3 | 277 | <java classname="${nashorn.shell.tool}" fork="true" dir="${test.script.dir}/representations" output="${build.dir}/output2.log" error="${build.dir}/err.log"> |
jlaskey@3 | 278 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 279 | <arg value="NASHORN-592a.js"/> |
jlaskey@3 | 280 | </java> |
jlaskey@3 | 281 | <condition property="representation-ok"> |
jlaskey@3 | 282 | <filesmatch file1="${build.dir}/output1.log" file2="${build.dir}/output2.log"/> |
jlaskey@3 | 283 | </condition> |
jlaskey@3 | 284 | <fail unless="representation-ok">Representation test failed - output differs!</fail> |
jlaskey@3 | 285 | <fileset id="test.classes" dir="${build.test.classes.dir}"> |
jlaskey@3 | 286 | <include name="**/access/*Test.class"/> |
jlaskey@3 | 287 | <include name="**/api/scripting/*Test.class"/> |
jlaskey@3 | 288 | <include name="**/codegen/*Test.class"/> |
jlaskey@3 | 289 | <include name="**/parser/*Test.class"/> |
jlaskey@3 | 290 | <include name="**/runtime/*Test.class"/> |
jlaskey@3 | 291 | <include name="**/framework/*Test.class"/> |
jlaskey@3 | 292 | </fileset> |
jlaskey@3 | 293 | |
jlaskey@3 | 294 | <testng outputdir="${build.test.results.dir}" classfilesetref="test.classes" |
jlaskey@3 | 295 | verbose="${testng.verbose}" haltonfailure="true" useDefaultListeners="false" listeners="${testng.listeners}" workingDir="${basedir}"> |
jlaskey@3 | 296 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 297 | <jvmarg line="${run.test.jvmargs} ${run.test.jvmsecurityargs}"/> |
jlaskey@3 | 298 | <propertyset> |
jlaskey@3 | 299 | <propertyref prefix="test-sys-prop."/> |
jlaskey@3 | 300 | <mapper from="test-sys-prop.*" to="*" type="glob"/> |
jlaskey@3 | 301 | </propertyset> |
jlaskey@3 | 302 | <classpath> |
jlaskey@3 | 303 | <pathelement path="${run.test.classpath}"/> |
jlaskey@3 | 304 | </classpath> |
jlaskey@3 | 305 | </testng> |
jlaskey@3 | 306 | </target> |
jlaskey@3 | 307 | |
jlaskey@3 | 308 | <target name="test-basicparallel" depends="jar, check-testng, check-external-tests, compile-test, generate-policy-file"> |
jlaskey@3 | 309 | <!-- use just build.test.classes.dir to avoid referring to TestNG --> |
jlaskey@3 | 310 | <java classname="${parallel.test.runner}" dir="${basedir}" classpath="${build.test.classes.dir}" failonerror="true" fork="true"> |
jlaskey@3 | 311 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 312 | <jvmarg line="${run.test.jvmargs} ${run.test.jvmsecurityargs}"/> |
jlaskey@3 | 313 | <syspropertyset> |
jlaskey@3 | 314 | <propertyref prefix="test-sys-prop."/> |
jlaskey@3 | 315 | <mapper type="glob" from="test-sys-prop.*" to="*"/> |
jlaskey@3 | 316 | </syspropertyset> |
jlaskey@3 | 317 | </java> |
jlaskey@3 | 318 | </target> |
jlaskey@3 | 319 | |
jlaskey@3 | 320 | <target name="test262" depends="jar, check-testng, check-external-tests, compile-test" if="testng.available"> |
jlaskey@3 | 321 | <fileset id="test.classes" dir="${build.test.classes.dir}"> |
jlaskey@3 | 322 | <include name="**/framework/*Test.class"/> |
jlaskey@3 | 323 | </fileset> |
jlaskey@3 | 324 | |
jlaskey@3 | 325 | <testng outputdir="${build.test.results.dir}" classfilesetref="test.classes" |
jlaskey@3 | 326 | verbose="${testng.verbose}" haltonfailure="true" useDefaultListeners="false" listeners="${testng.listeners}" workingDir="${basedir}"> |
jlaskey@3 | 327 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 328 | <jvmarg line="${run.test.jvmargs}"/> |
jlaskey@3 | 329 | <propertyset> |
jlaskey@3 | 330 | <propertyref prefix="test262-test-sys-prop."/> |
jlaskey@3 | 331 | <mapper from="test262-test-sys-prop.*" to="*" type="glob"/> |
jlaskey@3 | 332 | </propertyset> |
jlaskey@3 | 333 | <classpath> |
jlaskey@3 | 334 | <pathelement path="${run.test.classpath}"/> |
jlaskey@3 | 335 | </classpath> |
jlaskey@3 | 336 | </testng> |
jlaskey@3 | 337 | </target> |
jlaskey@3 | 338 | |
jlaskey@3 | 339 | <target name="test262parallel" depends="test262-parallel"/> |
jlaskey@3 | 340 | |
jlaskey@3 | 341 | <target name="test262-parallel" depends="jar, check-testng, check-external-tests, compile-test" if="testng.available"> |
jlaskey@3 | 342 | <!-- use just build.test.classes.dir to avoid referring to TestNG --> |
jlaskey@3 | 343 | <java classname="${parallel.test.runner}" dir="${basedir}" classpath="${build.test.classes.dir}" fork="true"> |
jlaskey@3 | 344 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 345 | <jvmarg line="${run.test.jvmargs}"/> |
jlaskey@3 | 346 | <syspropertyset> |
jlaskey@3 | 347 | <propertyref prefix="test262-test-sys-prop."/> |
jlaskey@3 | 348 | <mapper type="glob" from="test262-test-sys-prop.*" to="*"/> |
jlaskey@3 | 349 | </syspropertyset> |
jlaskey@3 | 350 | </java> |
jlaskey@3 | 351 | </target> |
jlaskey@3 | 352 | |
jlaskey@3 | 353 | <target name="all" depends="test, docs" |
jlaskey@3 | 354 | description="Build, test and generate docs for nashorn"/> |
jlaskey@3 | 355 | |
jlaskey@3 | 356 | <target name="run" depends="jar" |
jlaskey@3 | 357 | description="Run the shell with a sample script"> |
jlaskey@3 | 358 | <java classname="${nashorn.shell.tool}" fork="true" dir="samples"> |
jlaskey@3 | 359 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 360 | <jvmarg line="${run.test.jvmargs}"/> |
jlaskey@3 | 361 | <arg value="-dump-on-error"/> |
jlaskey@3 | 362 | <arg value="test.js"/> |
jlaskey@3 | 363 | </java> |
jlaskey@3 | 364 | </target> |
jlaskey@3 | 365 | |
jlaskey@3 | 366 | <target name="debug" depends="jar" |
jlaskey@3 | 367 | description="Debug the shell with a sample script"> |
jlaskey@3 | 368 | <java classname="${nashorn.shell.tool}" fork="true" dir="samples"> |
jlaskey@3 | 369 | <jvmarg line="${ext.class.path}"/> |
jlaskey@3 | 370 | <jvmarg line="${run.test.jvmargs}"/> |
jlaskey@3 | 371 | <arg value="--print-code"/> |
jlaskey@3 | 372 | <arg value="--verify-code"/> |
jlaskey@3 | 373 | <arg value="--print-symbols"/> |
jlaskey@3 | 374 | <jvmarg value="-Dnashorn.codegen.debug=true"/> |
jlaskey@3 | 375 | <arg value="test.js"/> |
jlaskey@3 | 376 | </java> |
jlaskey@3 | 377 | </target> |
sundar@19 | 378 | |
sundar@19 | 379 | <!-- targets to get external script tests --> |
sundar@19 | 380 | |
sundar@19 | 381 | <!-- test262 test suite --> |
sundar@19 | 382 | <target name="get-test262" depends="init" unless="${test-sys-prop.external.test262}"> |
sundar@19 | 383 | <!-- clone test262 mercurial repo --> |
sundar@19 | 384 | <exec executable="${hg.executable}"> |
sundar@19 | 385 | <arg value="clone"/> |
sundar@19 | 386 | <arg value="http://hg.ecmascript.org/tests/test262"/> |
sundar@19 | 387 | <arg value="${test.external.dir}/test262"/> |
sundar@19 | 388 | </exec> |
sundar@19 | 389 | </target> |
sundar@19 | 390 | <target name="update-test262" depends="init" if="${test-sys-prop.external.test262}"> |
sundar@19 | 391 | <!-- update test262 mercurial repo --> |
sundar@19 | 392 | <exec executable="${hg.executable}" dir="${test.external.dir}/test262"> |
sundar@19 | 393 | <arg value="pull"/> |
sundar@19 | 394 | <arg value="-u"/> |
sundar@19 | 395 | </exec> |
sundar@19 | 396 | </target> |
sundar@19 | 397 | |
sundar@19 | 398 | <!-- octane benchmark --> |
sundar@19 | 399 | <target name="get-octane" depends="init" unless="${test-sys-prop.external.octane}"> |
sundar@19 | 400 | <!-- checkout octane benchmarks --> |
sundar@19 | 401 | <exec executable="${svn.executable}"> |
sundar@19 | 402 | <arg value="--non-interactive"/> |
sundar@19 | 403 | <arg value="--trust-server-cert"/> |
sundar@19 | 404 | <arg value="checkout"/> |
sundar@19 | 405 | <arg value="http://octane-benchmark.googlecode.com/svn/trunk/"/> |
sundar@19 | 406 | <arg value="${test.external.dir}/octane"/> |
sundar@19 | 407 | </exec> |
sundar@19 | 408 | </target> |
sundar@19 | 409 | <target name="update-octane" depends="init" if="${test-sys-prop.external.octane}"> |
sundar@19 | 410 | <!-- update octane benchmarks --> |
sundar@19 | 411 | <exec executable="${svn.executable}" dir="${test.external.dir}/octane"> |
sundar@19 | 412 | <arg value="--non-interactive"/> |
sundar@19 | 413 | <arg value="--trust-server-cert"/> |
sundar@19 | 414 | <arg value="update"/> |
sundar@19 | 415 | </exec> |
sundar@19 | 416 | </target> |
sundar@19 | 417 | |
sundar@19 | 418 | <!-- sunspider benchmark --> |
sundar@19 | 419 | <target name="get-sunspider" depends="init" unless="${test-sys-prop.external.sunspider}"> |
sundar@19 | 420 | <!-- checkout sunspider --> |
sundar@19 | 421 | <exec executable="${svn.executable}"> |
sundar@19 | 422 | <arg value="--non-interactive"/> |
sundar@19 | 423 | <arg value="--trust-server-cert"/> |
sundar@19 | 424 | <arg value="checkout"/> |
sundar@19 | 425 | <arg value="http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider"/> |
sundar@19 | 426 | <arg value="${test.external.dir}/sunspider"/> |
sundar@19 | 427 | </exec> |
sundar@19 | 428 | </target> |
sundar@19 | 429 | <target name="update-sunspider" depends="init" if="${test-sys-prop.external.sunspider}"> |
sundar@19 | 430 | <!-- update sunspider --> |
sundar@19 | 431 | <exec executable="${svn.executable}" dir="${test.external.dir}/sunspider"> |
sundar@19 | 432 | <arg value="--non-interactive"/> |
sundar@19 | 433 | <arg value="--trust-server-cert"/> |
sundar@19 | 434 | <arg value="update"/> |
sundar@19 | 435 | </exec> |
sundar@19 | 436 | </target> |
sundar@19 | 437 | |
sundar@19 | 438 | <!-- get all external test scripts --> |
sundar@26 | 439 | <target name="externals" depends="init, check-external-tests, get-test262, get-octane, get-sunspider"> |
sundar@19 | 440 | <!-- make external test dir --> |
sundar@19 | 441 | <mkdir dir="${test.external.dir}"/> |
sundar@19 | 442 | |
sundar@19 | 443 | <!-- jquery --> |
sundar@19 | 444 | <mkdir dir="${test.external.dir}/jquery"/> |
sundar@19 | 445 | <get src="http://code.jquery.com/jquery-1.7.2.js" dest="${test.external.dir}/jquery" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 446 | <get src="http://code.jquery.com/jquery-1.7.2.min.js" dest="${test.external.dir}/jquery" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 447 | |
sundar@19 | 448 | <!-- prototype --> |
sundar@19 | 449 | <mkdir dir="${test.external.dir}/prototype"/> |
sundar@19 | 450 | <get src="http://ajax.googleapis.com/ajax/libs/prototype/1.7.0/prototype.js" dest="${test.external.dir}/prototype" usetimestamp="true" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 451 | |
sundar@19 | 452 | <!-- underscorejs --> |
sundar@19 | 453 | <mkdir dir="${test.external.dir}/underscore"/> |
sundar@19 | 454 | <get src="http://underscorejs.org/underscore.js" dest="${test.external.dir}/underscore" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 455 | <get src="http://underscorejs.org/underscore-min.js" dest="${test.external.dir}/underscore" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 456 | |
sundar@19 | 457 | <!-- yui --> |
sundar@19 | 458 | <mkdir dir="${test.external.dir}/yui"/> |
sundar@19 | 459 | <get src="http://yui.yahooapis.com/3.5.1/build/yui/yui.js" dest="${test.external.dir}/yui" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 460 | <get src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js" dest="${test.external.dir}/yui" skipexisting="true" ignoreerrors="true"/> |
sundar@19 | 461 | |
sundar@19 | 462 | </target> |
sundar@19 | 463 | |
sundar@19 | 464 | <!-- update external test suites that are pulled from source control systems --> |
sundar@26 | 465 | <target name="update-externals" depends="init, check-external-tests, update-test262, update-octane, update-sunspider"/> |
sundar@26 | 466 | |
sundar@26 | 467 | <!-- run all perf tests --> |
sundar@26 | 468 | <target name="perf" depends="externals, update-externals, sunspider, octane"/> |
sundar@26 | 469 | |
sundar@26 | 470 | <!-- run all tests --> |
sundar@26 | 471 | <target name="exit-if-no-testng" depends="init, check-testng" unless="${testng.available}"> |
sundar@26 | 472 | <fail message="Exiting.."/> |
sundar@26 | 473 | </target> |
sundar@26 | 474 | |
sundar@26 | 475 | <target name="alltests" depends="exit-if-no-testng, externals, update-externals, test, test262parallel, perf"/> |
sundar@19 | 476 | |
jlaskey@3 | 477 | </project> |