mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-06 18:35:19 +00:00
248 lines
9.6 KiB
XML
248 lines
9.6 KiB
XML
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<project name="Java Script Test" default="test" basedir="."
|
|
xmlns:artifact="antlib:org.apache.maven.artifact.ant"
|
|
xmlns:jsl="antlib:com.googlecode.jslint4java">
|
|
|
|
<description>Java Script Test based on Thrift Java Library</description>
|
|
|
|
<property name="src" location="src" />
|
|
<property name="genjava" location="gen-java" />
|
|
<property name="genjs" location="gen-js" />
|
|
<property name="build" location="build" />
|
|
<property name="jar.file" location="${build}/jstest.jar" />
|
|
|
|
<!-- the root directory, where you unpack thrift distibution (e.g.: thrift-0.x.x.tar.gz) -->
|
|
<property name="thrift.dir" location="../../../" />
|
|
<property name="thrift.java.dir" location="${thrift.dir}/lib/java" />
|
|
<property name="build.tools.dir" location="${thrift.java.dir}/build/tools/"/>
|
|
<property file="${basedir}/build.properties"/>
|
|
|
|
<!-- Include the base Java properties file -->
|
|
<property file="${thrift.java.dir}/gradle.properties" />
|
|
|
|
<property name="thrift.compiler" location="${thrift.dir}/compiler/cpp/thrift" />
|
|
|
|
<path id="libs.classpath">
|
|
<fileset dir="${thrift.java.dir}/build/libs">
|
|
<include name="libthrift*.jar" />
|
|
<exclude name="libthrift*javadoc.jar" />
|
|
<exclude name="libthrift*sources.jar" />
|
|
</fileset>
|
|
<fileset dir="${build}/lib">
|
|
<include name="*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<path id="test.classpath">
|
|
<path refid="libs.classpath" />
|
|
<pathelement location="${jar.file}" />
|
|
</path>
|
|
|
|
<target name="dependencies">
|
|
<fail>
|
|
<condition>
|
|
<not>
|
|
<resourcecount count="2">
|
|
<fileset id="fs" dir="${thrift.java.dir}/build/libs">
|
|
<include name="libthrift*.jar" />
|
|
<exclude name="libthrift*javadoc.jar" />
|
|
<exclude name="libthrift*sources.jar" />
|
|
</fileset>
|
|
</resourcecount>
|
|
</not>
|
|
</condition>
|
|
You need libthrift*.jar and libthrift*test.jar located at
|
|
${thrift.java.dir}/build/libs
|
|
Did you compile Thrift Java library and its test suite by "make check"?
|
|
</fail>
|
|
<fail>
|
|
<condition>
|
|
<not>
|
|
<resourcecount count="1">
|
|
<fileset id="fs" dir="${thrift.dir}" includes="compiler/cpp/thrift"/>
|
|
</resourcecount>
|
|
</not>
|
|
</condition>
|
|
Thrift compiler is missing !
|
|
</fail>
|
|
</target>
|
|
|
|
<target name="init" depends="dependencies">
|
|
<tstamp />
|
|
<mkdir dir="${build.tools.dir}"/>
|
|
<mkdir dir="${build}"/>
|
|
<mkdir dir="${build}/js/lib"/>
|
|
<mkdir dir="${build}/lib"/>
|
|
<mkdir dir="${build}/log"/>
|
|
<mkdir dir="${build}/test"/>
|
|
<mkdir dir="${build}/test/log"/>
|
|
</target>
|
|
|
|
<target name="download_jslibs">
|
|
<get src="http://code.jquery.com/jquery-1.11.3.min.js" dest="${build}/js/lib/jquery.js" usetimestamp="true"/>
|
|
<get src="http://code.jquery.com/qunit/qunit-2.6.2.js" dest="${build}/js/lib/qunit.js" usetimestamp="true"/>
|
|
<get src="http://code.jquery.com/qunit/qunit-2.6.2.css" dest="${build}/js/lib/qunit.css" usetimestamp="true"/>
|
|
</target>
|
|
|
|
<target name="jslibs" depends="init, proxy, download_jslibs">
|
|
</target>
|
|
|
|
<target name="compile" description="compile the test suite" depends="init, generate, resolve">
|
|
<!-- //TODO enable <compilerarg value="-Xlint"/>-->
|
|
<javac compiler="modern" includeantruntime="false" srcdir="${genjava}" destdir="${build}/test" classpathref="libs.classpath"/>
|
|
<javac compiler="modern" includeantruntime="false" srcdir="${src}" destdir="${build}/test" classpathref="libs.classpath"/>
|
|
</target>
|
|
|
|
<target name="jstest" description="create the test suite jar file" depends="compile">
|
|
<jar jarfile="${jar.file}" basedir="${build}/test"/>
|
|
</target>
|
|
|
|
<target name="testserver" description="run the test server" depends="jstest, jslibs">
|
|
<java classname="test.Httpd" fork="true"
|
|
classpathref="test.classpath" failonerror="true">
|
|
<arg value="../" />
|
|
</java>
|
|
</target>
|
|
|
|
<target name="proxy" if="proxy.enabled">
|
|
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
|
|
proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
|
|
</target>
|
|
|
|
<target name="xvfb">
|
|
<echo>check if Xvfb is available:</echo>
|
|
<exec executable="Xvfb" failifexecutionfails="no" resultproperty="xvfb.present" failonerror="false" output="${build}/log/xvfb.log">
|
|
<arg line="--version"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="phantomjs" depends="xvfb" if="xvfb.present">
|
|
<echo>check if phantomjs is available:</echo>
|
|
<exec executable="phantomjs" failifexecutionfails="no" resultproperty="phantomjs.present" failonerror="false" output="${build}/log/phantomjs.log">
|
|
<arg line="--version"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="unittest" description="do unit tests with headless browser phantomjs" depends="init, phantomjs, jstest, jslibs" if="phantomjs.present">
|
|
<parallel>
|
|
<exec executable="Xvfb" spawn="true" failonerror="false">
|
|
<arg line=":99" />
|
|
</exec>
|
|
<java classname="test.Httpd" fork="true" timeout="10000"
|
|
classpathref="test.classpath" failonerror="false" output="${build}/log/unittest.log">
|
|
<arg value="../" />
|
|
</java>
|
|
<sequential>
|
|
<sleep seconds="2"/>
|
|
<echo>Running Unit Tests with headless browser!</echo>
|
|
<exec executable="phantomjs" failonerror="true">
|
|
<env key="DISPLAY" value=":99"/>
|
|
<arg line="phantomjs-qunit.js http://localhost:8088/test/test.html" />
|
|
</exec>
|
|
</sequential>
|
|
</parallel>
|
|
</target>
|
|
|
|
<target name="generate">
|
|
<exec executable="${thrift.compiler}" failonerror="true">
|
|
<arg line="--gen java ${thrift.dir}/test/v0.16/ThriftTest.thrift" />
|
|
</exec>
|
|
<exec executable="${thrift.compiler}" failonerror="true">
|
|
<arg line="--gen js:jquery ${thrift.dir}/test/v0.16/ThriftTest.thrift" />
|
|
</exec>
|
|
<exec executable="${thrift.compiler}" failonerror="true">
|
|
<arg line="--gen js:jquery ${thrift.dir}/test/DoubleConstantsTest.thrift" />
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="test" description="run test suite (lint, unittest)" depends="lint, unittest"/>
|
|
|
|
<target name="lint" description="code quality checks (jslint and gjslint if available)" depends="generate, gjslint, jslint"/>
|
|
|
|
<target name="jslint" depends="resolve">
|
|
<taskdef uri="antlib:com.googlecode.jslint4java" resource="com/googlecode/jslint4java/antlib.xml" classpathref="libs.classpath" />
|
|
<!--
|
|
the following options would probably make sense in the future:
|
|
browser,undef,eqeqeq,plusplus,bitwise,regexp,strict,newcap,immed
|
|
-->
|
|
<jsl:jslint options="evil,forin,browser,bitwise,regexp,newcap,immed" encoding="UTF-8">
|
|
<formatter type="plain" />
|
|
<fileset dir="../src" includes="thrift.js" />
|
|
|
|
<!-- issues with unsafe character -->
|
|
<!-- fileset dir="." includes="*test*.js" /> -->
|
|
</jsl:jslint>
|
|
</target>
|
|
|
|
<target name="check-gjslint">
|
|
<echo>check if gjslint is available:</echo>
|
|
<exec executable="gjslint" failifexecutionfails="no" resultproperty="gjslint.present" failonerror="false">
|
|
<arg line="--helpshort"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="gjslint" depends="check-gjslint" if="gjslint.present">
|
|
<exec executable="gjslint" failifexecutionfails="no">
|
|
<arg line="--nojsdoc"/>
|
|
<arg line="${genjs}/*.js"/>
|
|
<arg line="../src/thrift.js"/>
|
|
|
|
<!-- issues with unsafe character, etc. -->
|
|
<!-- <arg line="*test*.js"/> -->
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="clean">
|
|
<delete dir="${build}" />
|
|
<delete dir="${genjava}" />
|
|
<delete dir="${genjs}" />
|
|
</target>
|
|
|
|
<target name="mvn.ant.tasks.download" depends="init,mvn.ant.tasks.check" unless="mvn.ant.tasks.found">
|
|
<get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/>
|
|
</target>
|
|
|
|
<target name="mvn.ant.tasks.check">
|
|
<condition property="mvn.ant.tasks.found">
|
|
<typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="resolve" depends="mvn.ant.tasks.download" unless="mvn.finished">
|
|
<typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${thrift.java.dir}/build/tools/${mvn.ant.task.jar}"/>
|
|
|
|
<artifact:dependencies filesetId="js.test.dependency.jars">
|
|
<dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
|
|
<dependency groupId="com.googlecode.jslint4java" artifactId="jslint4java-ant" version="1.4.6"/>
|
|
<dependency groupId="eu.medsea.mimeutil" artifactId="mime-util" version="2.1.3"/>
|
|
<dependency groupId="javax.annotation" artifactId="javax.annotation-api" version="1.3.2"/>
|
|
<remoteRepository url="${mvn.repo}"/>
|
|
</artifact:dependencies>
|
|
|
|
<!-- Copy the dependencies to the build/lib dir -->
|
|
<copy todir="${build}/lib">
|
|
<fileset refid="js.test.dependency.jars"/>
|
|
<mapper type="flatten"/>
|
|
</copy>
|
|
|
|
<property name="mvn.finished" value="true"/>
|
|
</target>
|
|
</project>
|