--- /dev/null
+<!--
+ 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>