]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.db.tests/build.xml
Added missing org.simantics.db.{tests,testing} plug-ins.
[simantics/platform.git] / tests / org.simantics.db.tests / build.xml
diff --git a/tests/org.simantics.db.tests/build.xml b/tests/org.simantics.db.tests/build.xml
new file mode 100644 (file)
index 0000000..da0a86f
--- /dev/null
@@ -0,0 +1,395 @@
+<!--
+    Copyright (c) 2007, 2010 Association for Decentralized Information Management
+    in Industry THTH ry.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+   
+    Contributors:
+        VTT Technical Research Centre of Finland - initial API and implementation
+ -->
+<project name="Run db tests." basedir="." default="all">
+       <!-- Load properties -->
+       <property file="build.properties"/>
+
+       <property name="test.deadlock.timeout" value="3600000"/>
+       <property name="test.exit.timeout" value="${test.deadlock.timeout}"/>
+       <property name="test.configuration" value="regression"/>
+       <property name="test.graph.impl" value="socket"/>
+       <property name="test.transaction.policy" value="keep"/>
+       <property name="test.thread.model" value="4"/>
+       <property name="test.use.failed" value="false"/>
+       <property name="jvmarg.Xmx" value=""/>
+       <property name="jvmarg.ea" value=""/>
+       
+       <condition property="use.failed" value="true">
+       <istrue value="${test.use.failed}"/>
+       </condition>
+
+       <condition property="family" value="win32" else="linux">
+       <os family="windows"/>
+       </condition>
+
+       <condition property="arch" value="x86_64" else="x86">
+               <or>
+               <os arch="amd64"/>
+               <os arch="x86_64"/>
+               </or>
+       </condition>
+
+       <property name="os.dir" value="${family}.${arch}" />
+
+       <!-- Set properties for directories -->
+       <property name="origin.dir" value="../"/>
+       <property name="lib.dir" value="./lib"/>
+       <property name="run.dir" value="run/"/>
+       <property name="env.dir" value="${run.dir}env/"/>
+       <property name="defaultDb.dir" value="${run.dir}/defaultDb"/>
+       <property name="path.dir" value="env/"/>
+       <property name="target.dir" value="${user.home}/targetDir"/>
+       <property name="databoard.dir" value="${origin.dir}/org.simantics.databoard"/>
+
+       <!-- Set properties for test classes -->
+       <property name="regression.tests" value="org.simantics.db.tests.suite.RegressionTests"/>
+       <property name="performance.tests" value="org.simantics.db.tests.suite.PerformanceTests"/>
+       <property name="plugin.tests" value="org.simantics.db.tests.suite.PluginTests"/>
+       <property name="plugin2.tests" value="org.simantics.db.tests.suite.PluginTests2"/>
+       <property name="stress.tests" value="org.simantics.db.tests.suite.StressTests"/>
+       <property name="temp.tests" value="org.simantics.db.tests.suite.TempTests"/>
+
+       <property name="test.classes.dir" value="./test.classes" />
+       <property name="src.dir" value="src"/>
+       <!--<property name="classes.dir" value="./"/>-->
+       <property name="project.name" value="db"/>
+       <property name="version" value="0.7"/>
+       <property name="user.name" value="VTT"/>
+
+       <!-- Set property for external lib directory 
+       (typically set up as external project within project) -->
+       <property name="lib.dir" value="lib"/>
+
+       <target name="init-dirs">
+               <!--<echo>Creating folders...</echo>-->
+               <mkdir dir="${run.dir}" />
+               <mkdir dir="${defaultDb.dir}" />
+       </target>
+       
+       <target name="-init-prop" depends="init-dirs">
+               <tstamp>
+                       <format property="start.time" pattern="yyyy-MM-dd-HH-mm-ss" timezone="EET" />
+               </tstamp>
+               <path id="env.classpath">
+                       <fileset dir="${run.dir}">
+                               <include name="**/*.jar" />
+                       </fileset>
+               </path>
+               <condition property="env.built">
+                       <resourcecount refid="env.classpath" count="0" when="gt"/>
+               </condition>
+               <echo>target.dir=${target.dir}</echo>
+               <echo>test.deadlock.timeout=${test.deadlock.timeout}</echo>
+               <echo>test.exit.timeout=${test.exit.timeout}</echo>
+               <echo>test.configuration=${test.configuration}</echo>
+               <echo>test.graph.impl=${test.graph.impl}</echo>
+               <echo>test.transaction.policy=${test.transaction.policy}</echo>
+               <echo>test.thread.model=${test.thread.model}</echo>
+               <echo>test.use.failed=${test.use.failed}</echo>
+               <echo>jvmarg.Xmx=${jvmarg.Xmx}</echo>
+               <echo>jvmarg.ea=${jvmarg.ea}</echo>
+       </target>
+       
+       <target name="init-db" depends="init-dirs" unless="env.built">
+               <!--<exec executable="./generate_layer0.bat" osfamily="windows"/>
+               <exec executable="./generate_layer0.sh" os="Linux"/>-->
+               <copy todir="${defaultDb.dir}">
+                       <fileset dir="${origin.dir}org.simantics.db.build/${os.dir}">
+                               <include name="*.cnfg" />
+                               <!--<include name="*.procore" />-->
+                       </fileset>
+               </copy>
+       </target>
+
+       <target name="-init" depends="-init-prop"/>
+
+       <target name="env-jars" depends="build-dirs,build-databoard" unless="env.built"/>
+       
+       <target name="build-dirs" unless="env.built">
+               <fail unless="target.dir" message="Target dir must be set to built runtime environment."/>
+               <mkdir dir="${run.dir}" />
+               <mkdir dir="${env.dir}" />
+               <copy todir="${env.dir}">
+                       <fileset dir="${origin.dir}org.simantics.db.build/${os.dir}">
+                               <include name="*.dll" />
+                               <include name="*.so" />
+                       </fileset>
+               </copy>
+               <copy todir="${env.dir}">
+                       <fileset dir="${target.dir}">
+                               <include name="eclipse/plugins/org.junit_4*/junit.jar" />
+                               <include name="eclipse/plugins/org.junit_4*.jar" />
+                               <include name="eclipse/plugins/org.eclipse.equinox.p2.metadata_*.jar" />
+                               <include name="eclipse/plugins/org.eclipse.equinox.common_*.jar" />
+                               <include name="eclipse/plugins/org.eclipse.equinox.registry_*.jar" />
+                               <include name="eclipse/plugins/org.eclipse.core.runtime_*.jar" />
+                               <include name="eclipse/plugins/org.eclipse.osgi_*.jar" />
+                               <include name="external/plugins/gnu.trove*.jar" />
+                               <include name="external/plugins/org.apache.commons.collections_*.jar" />
+                               <include name="external/plugins/org.apache.log4j_*.jar" />
+                               <include name="external/plugins/org.apache.commons.io_*.jar" />
+                               <include name="simantics/plugins/org.simantics.databoard_*.jar" />
+                               <include name="simantics/plugins/org.simantics.db.layer0_*.jar" />
+                               <include name="simantics/plugins/org.simantics.layer0_*.jar" />
+                               <!--<include name="org.simantics.project_*.jar" />-->
+                               <include name="org.eclipse.equinox.p2.metadata_*.jar" />
+                       </fileset>
+               </copy>
+       </target>
+
+       <target name="build-databoard" unless="env.built">
+               <ant antfile="build2.xml" dir="${databoard.dir}" inheritAll="false"/>
+               <copy todir="${env.dir}">
+                       <fileset dir="${databoard.dir}/build">
+                               <include name="org.simantics.databoard_*.jar" />
+                       </fileset>
+               </copy>
+       </target>       
+       <target name="build-env" depends="-init,env-jars,init-db,compile" unless="env.built"
+               description="Build runtime envrionment for the tests.">
+       </target>
+
+       <target name="clean-compile" description="Clean up compiled classes.">
+               <delete dir="${test.classes.dir}"/>
+       </target>
+       
+       <target name="clean-run" description="Clean up run directory.">
+               <delete includeEmptyDirs="true">
+                       <fileset dir="${run.dir}" includes="**/*"/>
+               </delete>
+       </target>
+       
+       <target name="clean" depends="clean-compile,clean-run" description="Clean up generated stuff.">
+               <!--<echo>Cleaning up...</echo>-->
+       </target>
+
+       <target name="all" depends="clean,regression,performance,stress"  description="Run all pojo tests.">
+               <echo>Tests done.</echo>
+       </target>
+
+       <target name="regression" depends="build-env" description="Run regression tests.">
+               <junit fork="yes" forkmode="perTest" timeout="${test.deadlock.timeout}" dir="${run.dir}" haltonfailure="false" haltonerror="false"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <sysproperty key="test.exit.timeout" value="${test.exit.timeout}"/>
+                       <sysproperty key="test.configuration" value="${test.configuration}"/>
+                       <sysproperty key="test.graph.impl" value="${test.graph.impl}"/>
+                       <sysproperty key="test.transaction.policy" value="${test.transaction.policy}"/>
+                       <sysproperty key="test.thread.model" value="${test.thread.model}"/>
+                       <sysproperty key="test.use.failed" value="${test.use.failed}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${regression.tests}" todir="${run.dir}" outfile="${regression.tests}-${start.time}" haltonfailure="true" haltonerror="true" unless="use.failed"/>
+                       <test name="${regression.tests}" todir="${run.dir}" outfile="${regression.tests}-${start.time}" haltonfailure="false" haltonerror="false" if="use.failed"/>
+               </junit>
+       </target>
+
+       <target name="plugin" depends="build-env" description="Run plugin tests.">
+               <junit fork="yes" forkmode="once" dir="${run.dir}" haltonfailure="yes" haltonerror="yes"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <!--                    <formatter type="plain" usefile="true" /> -->
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${plugin.tests}" todir="${run.dir}" outfile="PluginTests-${start.time}"/>
+               </junit>
+       </target>
+
+       <target name="plugin2" depends="build-env" description="Run plugin2 tests.">
+               <junit fork="yes" forkmode="once" dir="${run.dir}" haltonfailure="yes" haltonerror="yes"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-ea"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <!--                    <formatter type="plain" usefile="true" /> -->
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${plugin2.tests}" todir="${run.dir}" outfile="PluginTests2-${start.time}"/>
+               </junit>
+       </target>
+
+       <target name="performance" depends="build-env" description="Run performance tests.">
+               <junit fork="yes" forkmode="perTest" timeout="${test.deadlock.timeout}" dir="${run.dir}" haltonfailure="false" haltonerror="false"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <sysproperty key="test.exit.timeout" value="${test.exit.timeout}"/>
+                       <sysproperty key="test.configuration" value="${test.configuration}"/>
+                       <sysproperty key="test.graph.impl" value="${test.graph.impl}"/>
+                       <sysproperty key="test.transaction.policy" value="${test.transaction.policy}"/>
+                       <sysproperty key="test.thread.model" value="${test.thread.model}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${performance.tests}" todir="${run.dir}" outfile="PerformanceTests-${start.time}"/>
+               </junit>
+       </target>
+
+       <target name="stress" depends="build-env" description="Run stress tests.">
+               <junit fork="yes" forkmode="perTest" timeout="${test.deadlock.timeout}" dir="${run.dir}" haltonfailure="false" haltonerror="false"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <sysproperty key="test.exit.timeout" value="${test.exit.timeout}"/>
+                       <sysproperty key="test.configuration" value="${test.configuration}"/>
+                       <sysproperty key="test.graph.impl" value="${test.graph.impl}"/>
+                       <sysproperty key="test.transaction.policy" value="${test.transaction.policy}"/>
+                       <sysproperty key="test.thread.model" value="${test.thread.model}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${stress.tests}" todir="${run.dir}" outfile="StressTests-${start.time}"/>
+               </junit>
+       </target>
+
+       <target name="temp" depends="build-env" description="Run temporary tests.">
+               <junit fork="yes" forkmode="perTest" timeout="${test.deadlock.timeout}" dir="${run.dir}" haltonfailure="false" haltonerror="false"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <sysproperty key="test.exit.timeout" value="${test.exit.timeout}"/>
+                       <sysproperty key="test.configuration" value="${test.configuration}"/>
+                       <sysproperty key="test.graph.impl" value="${test.graph.impl}"/>
+                       <sysproperty key="test.transaction.policy" value="${test.transaction.policy}"/>
+                       <sysproperty key="test.thread.model" value="${test.thread.model}"/>
+                       <sysproperty key="test.use.failed" value="${test.use.failed}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="${temp.tests}" todir="${run.dir}" outfile="TempTests-${start.time}" haltonfailure="true" haltonerror="true" unless="use.failed"/>
+                       <test name="${temp.tests}" todir="${run.dir}" outfile="TempTests-${start.time}" haltonfailure="false" haltonerror="false" if="use.failed"/>
+               </junit>
+       </target>
+
+       <target name="api" depends="build-env" description="Run API tests.">
+               <junit fork="yes" forkmode="perTest" timeout="${test.deadlock.timeout}" dir="${run.dir}" haltonfailure="false" haltonerror="false"
+               outputtoformatters="false" tempdir="${run.dir}" printsummary="on" showoutput="true">
+                       <sysproperty key="test.exit.timeout" value="${test.exit.timeout}"/>
+                       <sysproperty key="test.configuration" value="${test.configuration}"/>
+                       <sysproperty key="test.graph.impl" value="${test.graph.impl}"/>
+                       <sysproperty key="test.transaction.policy" value="${test.transaction.policy}"/>
+                       <sysproperty key="test.thread.model" value="${test.thread.model}"/>
+                       <jvmarg line="${jvmarg.Xmx}"/>
+                       <jvmarg line="${jvmarg.ea}"/>
+                       <jvmarg value="-Djava.library.path=${path.dir}"/>
+                       <jvmarg value="-Xshare:off"/>
+                       <classpath refid="env.classpath" />
+                       <formatter type="brief" usefile="false"/>
+                       <formatter type="xml" usefile="true"/>
+                       <test name="org.simantics.db.tests.common.GenerateTest" todir="${run.dir}" outfile="TestGenerate-${start.time}"/>
+                       <batchtest todir="${run.dir}">
+                           <fileset dir="src/">
+                             <include name="org/simantics/db/tests/api/**/*.java"/>
+                           </fileset>
+                       </batchtest>
+               </junit>
+       </target>
+       
+       <path id="compile-classpath">
+               <fileset dir="${env.dir}" >
+                       <include name="**/*.jar"/>
+               </fileset>
+               <!--<fileset dir="${origin.dir}" >
+                       <include name="**/*.jar"/>
+               </fileset>-->
+       </path>
+
+       <target name="compile" depends="-init-prop,env-jars">
+               <mkdir dir="${test.classes.dir}" />
+               <copy todir="${test.classes.dir}">
+                       <fileset dir="${origin.dir}/org.simantics.db/src/" includes="**/*.java"/>
+                       <fileset dir="${origin.dir}/org.simantics.db.common/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.impl/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.layer0/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.management/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.procore/src/" includes="**/*.java">
+                         <exclude name="**/bundle/*.java" />
+                       </fileset>
+                       <fileset dir="${origin.dir}/org.simantics.db.procore.protocol/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.procore.protocol/stubs/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.db.services/src" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.common/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.data/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.graph/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.graph.db/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.fastlz/src/" includes="**/*.java" >
+                         <exclude name="**/bundle/*.java" />
+                       </fileset>
+                       <fileset dir="${origin.dir}/org.simantics.layer0/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.scl.runtime/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.utils/src/" includes="**/*.java" />
+                       <fileset dir="${origin.dir}/org.simantics.utils.thread/src/" includes="**/*.java">
+                               <exclude name="**/org/simantics/utils/threads/Executors2.java"/>
+                       </fileset>
+                       <fileset dir="${origin.dir}/org.simantics.utils.datastructures/src/" includes="**/*.java"/>
+                       <fileset dir="${origin.dir}/org.simantics.layer0.utils/src/" includes="**/*.java">
+                               <exclude name="**/org/simantics/layer0/utils/serialization/TransferableGraphUtils.java" />
+                               <exclude name="**/org/simantics/layer0/utils/writer/AbstractDelayedGraphWriter.java" />
+                               <exclude name="**/org/simantics/layer0/utils/writer/DelayedGraphWriter.java" />
+                               <exclude name="**/org/simantics/layer0/utils/writer/DummyGraphWriter.java" />
+                       </fileset>
+                       <fileset dir="${origin.dir}/org.simantics.db.tests/src/" includes="**/*.java">
+                               <exclude name="**/org/simantics/db/tests/performance/java/BufferTest.java" />
+                               <exclude name="**/org/simantics/db/tests/Activator.java" />
+                               <!--<exclude name="**/org/simantics/db/tests/l0/**.java" />-->
+                               <exclude name="**/InitializeDbTestPlugin.java" />
+                               <exclude name="**/AdaptionFailureTest.java" />
+                               <exclude name="**/QuerySemanticsTest.java" />
+                               <exclude name="**/SyntheticModellingTest.java" />
+                               <exclude name="**/TextIndexingTest.java" />
+                               <exclude name="**/SyncAsyncSyncTest7.java" />
+                               <exclude name="**/PluginTests.java" />
+                               <exclude name="**/PluginTests2.java" />
+                       </fileset>
+                       <fileset dir="${origin.dir}/org.simantics.diagram.ontology/src/" includes="**/*.java"/>
+                       <fileset dir="${origin.dir}/org.simantics.operating.ontology/src/" includes="**/*.java"/>
+                       <fileset dir="${origin.dir}/org.simantics.project/src/">
+                               <include name="**/GraphBundle*.java"/>
+                               <include name="**/ServerManager*.java"/>
+                               <include name="**/DatabaseManagement.java"/>
+                       </fileset>
+               </copy>
+               <javac destdir="${test.classes.dir}" nowarn="on" debug="on">
+                       <classpath refid="compile-classpath" />
+                       <src path="${test.classes.dir}" />
+                       <include name="**/*.java" />
+               </javac>
+               <jar destfile="${env.dir}db-test.jar">
+                       <fileset dir="${test.classes.dir}" includes="**/*.class" />
+                       <fileset dir="${test.classes.dir}" includes="**/*.java" />
+                       <manifest>
+                               <!-- Who is building this jar? -->
+                               <attribute name="Built-By" value="${user.name}"/>
+                               <attribute name="Implementation-Vendor" value="VTT"/>
+                               <attribute name="Implementation-Title" value="${project.name}"/>
+                               <attribute name="Implementation-Version" value="${version}"/>
+                       </manifest>
+               </jar>
+       </target>
+</project>