[jboss-svn-commits] JBL Code SVN: r28051 - in labs/jbosstm/trunk/qa: ext and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 15 09:44:51 EDT 2009


Author: jhalliday
Date: 2009-07-15 09:44:51 -0400 (Wed, 15 Jul 2009)
New Revision: 28051

Added:
   labs/jbosstm/trunk/qa/run-tests.xml
Removed:
   labs/jbosstm/trunk/qa/build-dtfjunit.xml
   labs/jbosstm/trunk/qa/ext/jdom.jar
   labs/jbosstm/trunk/qa/ext/junit-4.5.jar
   labs/jbosstm/trunk/qa/run-dtf-local.xml
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/XML2JUnit.java
   labs/jbosstm/trunk/qa/testselections/
Modified:
   labs/jbosstm/trunk/qa/README.txt
   labs/jbosstm/trunk/qa/TaskImpl.properties
   labs/jbosstm/trunk/qa/tests/build-jta.xml
   labs/jbosstm/trunk/qa/tests/build-jts.xml
Log:
Remove last refs to DTF, update docs for the new junit method of running tests. JBTM-390


Modified: labs/jbosstm/trunk/qa/README.txt
===================================================================
--- labs/jbosstm/trunk/qa/README.txt	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/README.txt	2009-07-15 13:44:51 UTC (rev 28051)
@@ -26,131 +26,44 @@
 # $Id$
 # @author jonathan.halliday at redhat.com, created 2007-02-08
 
-This is the JBossTS QA Testsuite, otherwise known as jbossts-qa and previously as ats-qa
-It provides the glue between JBossTS and the DTF, including product specific tests and configuration.
+This is the JBossTS QA Testsuite.
 
-As of April 2008, the DTF used to run these tests is open source. Thus the jbossts-qa test suite is
-likewise being moved to open source.
+JBossTS provides distributed transaction management. The tests in the QA suite exercise
+it using several processes (JVMs) for e.g. clients, servers and recovery processes. This
+differs from normal unit tests that run in a single JVM. In addition the QA tests can
+be long running, either because they do a lot of iterations for stress testing or because
+they include realtime waits for e.g. recovery process timeouts and such. Thus running the
+QA tests is a distinct step from running unit tests, which are an integral part of the build.
 
-For JBossTS 4.4 and later, the jbossts-qa test suite is in the JBossTS source repository directory qa/
-i.e. it's now considered part of the JBossTS project, not an independent entity.
-The DTF used to run it is at https://svn.jboss.org/repos/dtf/  (see http://labs.jboss.com/jbossdtf)
+From July 2009, JBossTS no longer uses the DTF framework for running QA tests. Instead the
+tests have been converted to junit4 and use a small scaffold to spawn the java processes
+as required. This allows better use of existing tool support e.g. junit ant integration, hudson.
 
-Earlier releases of JBossTS continue to use the closed source version of jbossts-qa, running under the
-closed source version of DTF. For JBoss staff only, these can be found on the intranet at
-  https://svn.corp.jboss.com/repos/qa/jbossts/trunk/
-  https://svn.corp.jboss.com/repos/dtf/trunk/
-  https://wiki.corp.jboss.com/bin/view/IT/SystemServiceQaDtfEnvironment
+requires: jdk (1.6+), ant (1.7+), database drivers (for jdbc tests only, see build.xml)
 
-The live DTF environment used by JBoss to test JBossTS releases is not publicly accessible at present.
-We hope to expose this test environment read-only to the community in due course, allowing for viewing
-of our test results. Until then, users wishing to utilise DTF must install their own instance.
+build the product:
+  cd jbossts_checkout_from_svn; ant jts
+This will build the qa tests, although you can also do that manually with
+  cd qa; ant
 
-For JBoss staff wanting to access the internal servers, see the information at
-  https://wiki.corp.jboss.com/bin/view/IT/SystemServiceQaDtfEnvironment
+The tests are executed by the run-tests.xml ant script. There are various test groups, see
+the script for an up to date list. For short(ish) smoke testing try
 
+  ant -f run-test.xml express
 
-To use this package, you need:
+This will test the product as built and placed in the ../install directory by the initial product build.
+The test framework runs in an environment defined by the run-tests.xml script, but the test tasks i.e.
+clients, servers etc, run in an environment dictated by the ./TaskImpl.properties file. Edit that file
+as required for your system e.g. location of desired jvm and such.
 
-  The JDK, apache ant, (plus tomcat and mysql if running the DTF locally)
+To debug the test framework, see debug jvm arg in the run-test.xml junit-tests task.
+To debug spawned processes, edit TaskImpl.properties to set debug command line args.
 
-  An installation of the Distributed Test Framework.
-  If you don't already have access to one go fetch it from the URL abve:
-  and follow the instructions in the DTF-Install-README.txt file.
-  Note: build with Java 5 (export JAVA_HOME=... before running ant) if you want to run tests
-  on a 5 JVM, or run the framework itself on 5. A Java 6 build won't run tests on Java 5.
-
-  A build of the JBossTS, JTS edition to test. If you don't already have one then either:
-  download a binary from http://labs.jboss.com/portal/jbosstm/downloads (get the 'full', not the 'jta' version)
-  or
-  svn co http://anonsvn.labs.jboss.com/labs/jbosstm/ and build with 'ant jts'
-  Note: You need to build using Java 5 if you expect to test on that version of the JVM.
-
-TODO: idl compiler
-
-  JDBC Database drivers for any database you want to test against (there are issues with redistributing
-  the drivers for commercial dbs, hence they are not provided bundled with this project)
-
-TODO: check licencing on specific db drivers - can we check them into this project? It would make life easier...
-should be possible for the open source dbs at least, plus maybe others
-
-Now edit the build.xml file in this directory, setting the properties near the top to the locations of
-the various pre-requisites mentioned above. If you want to package an AS as part of the test suite
-then make sure that the JBOSS_HOME environment variable points to a valid JBoss distribution and
-set the ant property 'as' to true. When runing the tests ensure that the version of TestingFramework.jar used
-running the DTF is the same one that is checked into JBossTS.
-
-Create the directory config/jdbc_profiles/<name_of_testnode_host>/ by copying the existing
-config/jdbc_profiles/_template/ directory, one for each host on which a test node will run.
-Edit the JDBCProfiles file in the new director(y|ies), setting the database connection information.
+For jdbc tests, ensure the required drivers are present (see build.xml get.drivers target)
+and create a suitable config/jdbc_profiles/<name_of_testnode_host>/ file by copying the existing
+config/jdbc_profiles/_template/ directory or rely on the one in config/jdbc_profiles/default
 By convention each test node has two accounts on each database server, with names of '<testnode_hostname>1'
 and '<testnode_hostname>2'. This allows for testing of transactions with two resources. These accounts
 need table creation privs plus the usual CRUD. The actual tables will be created automatically when the
 tests run.
 
-Set the JAVA_HOME to the older version of Java you may want to run tests on..
-
-Run 'ant'. This target will build JTA/JTS version of the product if the JBossTS build was JTA/JTS.
-The builds generates a .zip file with the QA distribution, which contains the tests plus the product itself
-copied in from your installation above, plus the database drivers, plus some config files and a copy of
-the JBoss AS if built with 'ant -Das=true'.
-
-To deploy the built product QA distribution to the DTF:
-
-  Edit the product configuration file config/JBossTS_JTS_JacORB_QA.xml to suit your DTF installation.
-  Copy it to the testenv/services/products/ directory of the DTF installation.
-
-  Edit the product installation file config/jbossts-jts-qa-install.xml to suit your DTF installation.
-  Copy it to the appropriate directory on the DTF web server, typically webapps/dtf/productinstallers/
-
-  (you can skip the two parts above if you just are redeploying a fresh build over an existing one)
-
-  Copy the test package build/jbossts-jts-qa-distribution.zip to the appropriate directory
-  on the DTF web server, typically webapps/dtf/productbuilds/
-
-  Bind the product to the installer file using the DTF webapp Deployment menu
-  (e.g. JBossTS_JTS_JacORB_QA -> http://.../dtf/productinstallers/jbossts-jts-qa-install.xml)
-
-You can now deploy the product to test nodes, define tests (files can be uploaded from the
-testdefs/ directory of this project) and run selections of them through the DTF web application.
-However, doing this by hand on a new DTF installation is tedious, so here is a rather hacky optional
-shortcut for those who have control over their own DTF installation and don't mind taking risks:
-
-  Testdefs (what is involved in a test or group of tests e.g. client and server processes etc)
-  and Test selections (which tests to run on which platforms) are stored in .xml files and also
-  have entries in the DTF database. You can upload testdef files to the webapp, which creates the
-  database entry for them automatically, including assigning them a sequence number. However, you
-  can't do this with test selections files. Test selections are normally defined through the web
-  interface, which creates both the .xml file and the database entry. These each contain reference to
-  the sequence number of the corresponding testdefs. Since this number depends on the order in which
-  the testdefs were installed, it may differ from one DTF instance to another. Thus to populate a
-  DTF installation with pre-existing testdefs and testselections, you need to manipulate the database
-  directly to ensure the correlation of sequence numbers. You'll probably be able to get away with this
-  only if there are no existing testdefs or testselections in the database.
-
-  The basic procedure is:
-
-    Copy the files testdefs/*.xml to the DTF's webapps/dtf/producttests/ directory
-    Copy the files testselections/*.xml to the DTF's webapps/dtf/producttests/ directory
-    Run the config/load-jbossts-sql.sql file against the DTF database as the dtf user.
-    Make appropriate ritual sacrifices, cross your fingers and restart the DTF.
-
-  If you take this route, you then have the ability to use the config/run-tests.sh and config/run-qa.xml
-  files to automate your test runs. The .xml file contains test selection file names, so it works
-  only with the specific sequence numbers generated by the above steps, not any random DTF installation.
-  You'll need to tweak the urls in these files to point to your DTF server.
-
-
-Addendum for running JTA rather than JTS QA:
-
-  Read the JTS deployment stuff above first so you know what is going on, this section is very terse.
-  You need to build or obtain the JBossTS JTA rather than JTS ('ant jta')
-  Edit build.xml, set buildtype to jta (TODO: determine automatically from .jars in ts.home?)
-  Edit config/JBossTS_JTA_QA.xml and copy to the server
-  Edit config/jbossts-jta-qa-install.xml and copy to the server TODO
-  copy build/jbossts-jta-qa-distribution.zip to the server
-  Bind JBossTS_JTA_QA -> http://.../dtf/productinstallers/jbossts-jta-qa-install.xml
-
-
-Note: txoj tests require test classes from JBossTS that are not installed by default. try e.g.
- scp ArjunaCore/txoj/lib/tests/txoj_tests.jar /services/DTF/JBossTS-JTA-QA/lib/ext/

Modified: labs/jbosstm/trunk/qa/TaskImpl.properties
===================================================================
--- labs/jbosstm/trunk/qa/TaskImpl.properties	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/TaskImpl.properties	2009-07-15 13:44:51 UTC (rev 28051)
@@ -1,14 +1,29 @@
-# command line elements for executing spawned java tasks
-#COMMAND_LINE_0=/usr/local/jdk1.5.0_15/bin/java
+#
+# TaskImpl.properties - a config file for the TaskImpl class which is responsible for spawning
+# processes (usually JVMs) for multi-process tests.
+# The command line used for the spawned JVM is composed by taking the COMMAND_LINE_X
+# properties in muleric order, starting at 0 and counting up until a property is found missing.
+# Care should be taken when renumbering - don't reuse the same number or miss any out!
+#
+# Location of the JVM to use. Should usually be jdk6. Tweak according to your machine.
+# Note: the version in svn should have the right value for the hudson server - don't check in you own!
 #COMMAND_LINE_0=/usr/local/jdk1.6.0_14/bin/java
 COMMAND_LINE_0=/usr/local/jdk1.6.0_11/bin/java
+#
 COMMAND_LINE_1=-classpath
-
-##########
-## yeah I know it won't work on windows.
+#
+# The classpath consists (appox) of the JBossTS build (from its original home in 'install' - we no longer copy to
+# qa/build/) plus its bundled runtime dependencies, including jacorb, plus the qa tests jar, plus a dir in which the build
+# script places any requied db driver. Note the use of wildcards for this - don't expect it to work on jdk5.
+#
+# The effective properties file for JBossTS is the one in ../install/etc but not that later in this
+# file we use command line override of some properties.
+#
+## yeah I know it won't work on windows. - we either need another file or some clever internal munging. TODO.
 COMMAND_LINE_2=../install/lib/jbossjts.jar:../install/lib/ext/jta-1_1-classes.zip:../install/lib/ext/connector-api.jar:../install/lib/ext/commons-logging-1.1.jar:../install/lib/ext/log4j-1.2.8.jar:../install/etc/:../install/jacorb/lib/idl.jar:../install/jacorb/lib/backport-util-concurrent.jar:../install/jacorb/lib/jacorb.jar:../install/jacorb/lib/antlr-2.7.2.jar:../install/jacorb/lib/picocontainer-1.2.jar:../install/jacorb/lib/logkit-1.2.jar:../install/jacorb/lib/wrapper-3.1.0.jar:../install/jacorb/lib/avalon-framework-4.1.5.jar:../install/jacorb/etc/:ext/fscontext.jar:ext/providerutil.jar:tests/build/jbossts-jts-qa.jar:dbdrivers/selected_dbdriver/*
-##########
-
+#
+# properties used by the tests or test framework:
+#
 COMMAND_LINE_3=-Dqa.debug=true
 COMMAND_LINE_4=-DContext.PROVIDER_URL=file:///tmp
 COMMAND_LINE_5=-DContext.INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
@@ -16,17 +31,23 @@
 COMMAND_LINE_7=-Djdbcprofilestore.dir=config/jdbc_profiles
 COMMAND_LINE_8=-Dmemorytestprofilestore.dir=config/memory_profiles/
 COMMAND_LINE_9=-Dots.server.bindname=value_1
-
-###########
+#
+# properties that modify the behaviour of the product being tested:
+#
 COMMAND_LINE_10=-Dcom.arjuna.ats.arjuna.coordinator.maintainHeuristics=NO
 COMMAND_LINE_11=-Dcom.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod=10
 COMMAND_LINE_12=-Dcom.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod=5
-
+#
+# enable these to debug spawned processes. You may need to pause the test
+# framework in a debugger too, or it may spawn multiple procs on the same
+# debug port.
+#
 #COMMAND_LINE_13=-Xdebug
 #COMMAND_LINE_14=-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006
 
 #
-# task arg properties substitutions
+# task arg properties substitutions - you probably don't need to mess with these.
+# Read TaskImpl to understand how they work if you do.
 ORBFLAGS_1=
 ORBFLAGS_2=
 1=value_1

Deleted: labs/jbosstm/trunk/qa/build-dtfjunit.xml
===================================================================
--- labs/jbosstm/trunk/qa/build-dtfjunit.xml	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/build-dtfjunit.xml	2009-07-15 13:44:51 UTC (rev 28051)
@@ -1,251 +0,0 @@
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2009, Red Hat Middleware LLC, and individual contributors
-  as indicated by the @author tags.
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors.
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public License,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-  MA  02110-1301, USA.
-
-  (C) 2009,
-  @author JBoss Inc.
---><project name="dtfjunit" default="compile" basedir=".">
-
-    <!--
-    Build script for experimental JUnit4 version of local DTF.
-
-    lifecycle:
-
-    # build the JBossTS that's going to be tested
-    cd jbossts; ant clean; ant jbossjts
-    # build the normal DTF testsuite
-    cd qa; ant clean; ant
-    # build the JUnit test code
-    ant -f build-dtfjunit.xml compile
-    # generate the JUnit tests from testdef xml
-    ant -f build-dtfjunit.xml generate
-    # run the JUnit tests
-    ant -f build-dtfjunit.xml runtests
-
-    -->
-
-    <property name="jbossts.home" value="../install"/>
-
-    <property name="src" location="tests/src"/>
-    <property name="build" location="tests/build/classes"/>
-
-    <path id="build">
-
-        <pathelement location="ext/junit-4.5.jar"/>
-        <pathelement location="ext/jdom.jar"/>
-
-        <fileset dir="${jbossts.home}/lib">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="${jbossts.home}/lib/ext">
-            <include name="*.jar"/>
-            <include name="*.zip"/>
-        </fileset>
-        <pathelement location="${jbossts.home}/etc"/>
-
-        <pathelement location="../ext/TestingFramework.jar"/>
-    </path>
-
-
-    <target name="compile" description="compile the source ">
-        <javac srcdir="${src}" destdir="${build}" classpathref="build" debug="true" fork="true">
-            <include name="**/junit/*.java"/>
-            <include name="**/junit/testgroup/*.java"/>
-
-            <!--<exclude name="**/junit/XML2JUnit.java"/>-->
-        </javac>
-    </target>
-
-    <target name="compile-generated" description="compile the generated test source ">
-        <javac srcdir="${src}" destdir="${build}" classpathref="build" debug="true" fork="true">
-            <include name="**/junit/generated/*.java"/>
-        </javac>
-    </target>
-
-    <target name="runtests" depends="compile-generated">
-
-        <!--
-        <antcall target="run-onegroup"><param name="tests" value="currenttests01"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jtatests01"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="otsserver"/></antcall>
-
-        <antcall target="run-onegroup"><param name="tests" value="rawresources01_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawresources01_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawresources01_3"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawresources02_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawresources02_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawresources02_3"/></antcall>
-
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources01_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources01_3"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources02_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="rawsubtransactionawareresources02_3"/></antcall>
-
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery01"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery02_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery03"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery04"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery05_1"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery06"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery07"/></antcall>
-        -->
-
-        <!-- cr12: failing 02, 03, 04 - remove terminate -->
-        <!--<antcall target="run-onegroup"><param name="tests" value="crashrecovery12"/></antcall>-->
-
-<!--
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery02_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery05_2"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="crashrecovery08"/></antcall>
--->
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_oracle_thin_jndi"/></antcall>
-        <!--
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_oracle_thin_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_mssqlserver_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_mssqlserver_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_ibmdb2_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_ibmdb2_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_pgsql_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_pgsql_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_mysql_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_mysql_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources01_sybase_jndi"/></antcall>
-        <antcall target="run-onegroup"><param name="tests" value="jdbcresources02_sybase_jndi"/></antcall>
--->
-    </target>
-
-
-    <target  name="run-onegroup" depends="compile">
-        <echo message="Running group ${tests}"/>
-        <java classname="org.junit.runner.JUnitCore" fork="true">
-            <classpath>
-                <path refid="build"/>
-                <pathelement location="${build}"/>
-                <pathelement location="."/>
-            </classpath>
-            <!--<arg  value="org.jboss.jbossts.qa.junit.generated.TestGroup_${tests}"/>-->
-            <arg  value="org.jboss.jbossts.qa.junit.testgroup.TestGroup_${tests}"/>
-
-            <!--<jvmarg value="-Xdebug"/>-->
-            <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/>-->
-        </java>
-    </target>
-
-    <target name="generate" depends="compile">
-
-        <delete dir="${src}/org/jboss/jbossts/qa/junit/generated"/>
-        <mkdir dir="${src}/org/jboss/jbossts/qa/junit/generated"/>
-<!--
-        <antcall target="run-generator"><param name="tests" value="currenttests01"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jtatests01"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="otsserver"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources01_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources01_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources01_3"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources02_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources02_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawresources02_3"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources01_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources01_3"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources02_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="rawsubtransactionawareresources02_3"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery01"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery02_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery02_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery03"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery04"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery05_1"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery05_2"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery06"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery07"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery08"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery09"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery10"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-oracle_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-mssqlserver_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-ibmdb2_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-pgsql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-mysql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery11-sybase_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery12"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01-oracle_thin_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02-oracle_thin_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01_mssqlserver_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02_mssqlserver_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01-ibmdb2_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02-ibmdb2_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01-pgsql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02-pgsql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01-mysql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02-mysql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources01-sybase_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources02-sybase_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-oracle_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-mssql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-ibmdb2_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-pgsql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-mysql_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbclocals01-sybase_jndi"/></antcall>
-
-
-        <antcall target="run-generator"><param name="tests" value="txoj"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="txcore"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="ait01_otstransactionmanager"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="aitresources01"/></antcall>
-
-        <antcall target="run-generator"><param name="tests" value="jdbcresources03-oracle_thin_jndi"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="jdbcresources04-oracle_thin_jndi"/></antcall>
-
-        <antcall target="run-generator"><param name="tests" value="otsserver-timeout"/></antcall>
-
-        <antcall target="run-generator"><param name="tests" value="perfprofile01_e"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="perfprofile01_i"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="perfprofileio"/></antcall>
-        <antcall target="run-generator"><param name="tests" value="crashrecovery13"/></antcall>
-
--->
-
-        <!--<antcall target="run-generator"><param name="tests" value="performance"/></antcall>        -->
-        <!--<antcall target="run-generator"><param name="tests" value="as-crashrecovery01"/></antcall>-->
-
-    </target>
-
-
-    <target name="run-generator">
-
-        <echo message="Processing ${tests}"/>
-
-        <java classname="org.jboss.jbossts.qa.junit.XML2JUnit" fork="true">
-            <classpath>
-                <path refid="build"/>
-                <pathelement location="${build}"/>
-            </classpath>
-            <arg value="testdefs/jbossts-qa-${tests}-testdefs.xml"/>
-            <arg value="${src}/org/jboss/jbossts/qa/junit/generated"/>
-
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/>
-
-        </java>
-
-        <echo message="Done test group ${tests}"/>
-    </target>
-
-</project>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/qa/ext/jdom.jar
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/qa/ext/junit-4.5.jar
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/qa/run-dtf-local.xml
===================================================================
--- labs/jbosstm/trunk/qa/run-dtf-local.xml	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/run-dtf-local.xml	2009-07-15 13:44:51 UTC (rev 28051)
@@ -1,409 +0,0 @@
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2008, Red Hat Middleware LLC, and individual contributors
-  as indicated by the @author tags.
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors.
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public License,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-  MA  02110-1301, USA.
-
-  (C) 2008,
-  @author JBoss Inc.
--->
-
-<!--
-  Ant build script for running DTF tests locally using the new lightweight test runner (JIRA DTF-4).
-  Does not need tomcat, mysql or any DTF server processes running.
-
-  For JBossTS JTS builds.
-
-  1) Run the top level JBossTS ant build:  ant jts
-  2) Run the qa build:  cd qa; ant
-  2) Run the tests:  ant -f run-dtf-local.xml
-
-  For general tests plus JDBC (e.g. use on hudson):
-    cd qa
-    ant get.drivers dist
-    ant -f run-dtf-local.xml junit junit-jdbc
-
-  Paths are relative to the JVM's working dir - don't expect to be able to execute this from anywhere but 'qa'.
-
--->
-<project name="Local DTF Test for JBossTS" default="junit" basedir=".">
-
-    <property name="working.dir" location="build"/>
-
-	<path id="tests.classpath">
-        <pathelement location="${working.dir}/qa/lib/TestingFramework.jar"/>
-        <pathelement location="../ext/junit.jar"/>
-        <pathelement location="ext/jdom.jar"/>
-    </path>
-
-    <!-- a faster subset of the tests for smoke testing. aim to keep to under one hour total. -->
-    <target name="express">
-
-        <!-- currenttests01 : 36 tests, 3 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="currenttests01"/></antcall>
-        <!-- jtatests01 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
-        <!-- otsserver : 20 tests, 7 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="otsserver"/></antcall>
-
-        <!-- rawresources01_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources01_1"/></antcall>
-        <!-- rawresources02_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources02_1"/></antcall>
-        <!-- rawsubtransactionawareresources01_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
-        <!-- rawsubtransactionawareresources02_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
-
-        <!-- crashrecovery01 : 24 tests, 6 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery01"/></antcall>
-        <!-- crashrecovery02_1 : 5 tests, 6 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_1"/></antcall>
-        <!-- crashrecovery03 : 1 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery03"/></antcall>
-        <!-- crashrecovery06 : 2 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery06"/></antcall>
-        <!-- crashrecovery12 : 7 tests, 5 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery12"/></antcall>
-
-    </target>
-
-    <!-- General tests.
-        Some groups take a really long time and are disabled by default.
-        The remaining tests should take a combined time of around 4hrs or so.
-    -->
-    <target name="junit">
-
-        <!-- currenttests01 : 36 tests, 3 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="currenttests01"/></antcall>
-        <!-- jtatests01 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
-        <!-- otsserver : 20 tests, 7 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="otsserver"/></antcall>
-
-        <!-- rawresources01_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources01_1"/></antcall>
-        <!-- rawresources01_2 : 294 tests, 30 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources01_2"/></antcall>
-        <!-- rawresources01_3 : 150 tests, 15 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources01_3"/></antcall>
-        <!-- rawresources02_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources02_1"/></antcall>
-        <!-- rawresources02_2 : 294 tests, 30 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources02_2"/></antcall>
-        <!-- rawresources02_3 : 150 tests, 15 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawresources02_3"/></antcall>
-
-        <!-- rawsubtransactionawareresources01_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
-        <!-- rawsubtransactionawareresources01_2 : 10 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_2"/></antcall>
-        <!-- rawsubtransactionawareresources01_3 : 25 tests, 3 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_3"/></antcall>
-        <!-- rawsubtransactionawareresources02_1 : 6 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
-        <!-- rawsubtransactionawareresources02_2 : 10 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_2"/></antcall>
-        <!-- rawsubtransactionawareresources02_3 : 25 tests, 3 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_3"/></antcall>
-
-        <!-- crashrecovery01 : 24 tests, 6 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery01"/></antcall>
-        <!-- crashrecovery02_1 : 5 tests, 6 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_1"/></antcall>
-        <!-- crashrecovery02_2 : 50 tests, 60 minutes -->
-        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery02_2"/></antcall> -->
-        <!-- crashrecovery03 : 1 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery03"/></antcall>
-        <!-- crashrecovery04 : 48 tests, 11 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery04"/></antcall>
-        <!-- crashrecovery05_1 : 10 tests, 12 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery05_1"/></antcall>
-        <!-- crashrecovery05_2 : 100 tests, 122 minutes -->
-        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery05_2"/></antcall> -->
-        <!-- crashrecovery06 : 2 tests, 1 minute -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery06"/></antcall>
-        <!-- crashrecovery07 : 16 tests, 87 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery07"/></antcall>
-        <!-- crashrecovery08 : 32 tests, 228 minutes -->
-        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery08"/></antcall> -->
-        <!-- crashrecovery09 : 6 tests, 7 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery09"/></antcall>
-        <!-- crashrecovery10 : 6 tests, 7 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery10"/></antcall>
-        <!-- crashrecovery12 : 7 tests, 5 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery12"/></antcall>
-
-    </target>
-
-    <!-- long running crash rec test groups (the ones disabled in the 'junit' target) -->
-    <target name="junit-longer">
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_2"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery05_2"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery08"/></antcall>
-    </target>
-
-    <!-- copy the selected db driver out of the available set into the classpath.
-        Drivers are placed into the pool by build.xml and into the classpath by config/<product>.xml
-     -->
-    <target name="install-dbdriver">
-        <delete dir="dbdrivers/selected_dbdriver"/>
-        <mkdir dir="dbdrivers/selected_dbdriver"/>
-        <copy todir="dbdrivers/selected_dbdriver" flatten="true">
-            <fileset dir="dbdrivers/" includes="**/${files}"/>
-        </copy>
-    </target>
-
-    <!--  JDBC tests.
-        You'll need a qa/config/jdbc_profiles/<hostname>/JDBCProfiles file for your machine to run these ones,
-          although using the 'default' one is also an option.
-        Plus copies of the db drivers of course (try 'ant get.drivers' if inside the redhat network).
-        And a set of servers to run against. Did I mention it was complicated :-)
-    -->
-    <target  name="junit-jdbc">
-
-        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_oracle_thin_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_oracle_thin_jndi"/></antcall>
-
-        <!-- mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
-        <condition property="mssql.driver" value="sqljdbc4.jar">
-            <equals arg1="${java.specification.version}" arg2="1.6"/>
-        </condition>
-        <property name="mssql.driver" value="sqljdbc.jar"/>
-        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_mssqlserver_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_mssqlserver_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_ibmdb2_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_ibmdb2_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_pgsql_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_pgsql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_mysql_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_mysql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_sybase_jndi"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_sybase_jndi"/></antcall>
-
-    </target>
-
-    <target name="junit-jdbc-crachrec">
-        <!-- crashrecovery11 : jdbc resource crash recovery tests. 4 tests, 4 minutes per db -->
-
-        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-oracle_jndi"/></antcall>
-
-         <!--mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
-        <condition property="mssql.driver" value="sqljdbc4.jar">
-            <equals arg1="${java.specification.version}" arg2="1.6"/>
-        </condition>
-        <property name="mssql.driver" value="sqljdbc.jar"/>
-        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-mssqlserver_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-ibmdb2_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-pgsql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-mysql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-sybase_jndi"/></antcall>
-
-    </target>
-
-    <target name="jta">
-        <property name="use_jta_mode" value="true"/>
-
-        <!-- txcore: 352 tests, 3.5 hrs
-            Some memory tests fail, see JBTM-555 -->
-        <!-- <antcall target="junit-tests"><param name="tests" value="txcore"/></antcall> -->
-
-        <!-- jtatest01 : 6 tests, minute-->
-        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
-
-        <!-- jdbclocals01 : 6 tests, 2 minutes for each db -->
-
-        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-oracle_jndi"/></antcall>
-
-        <!-- mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
-        <condition property="mssql.driver" value="sqljdbc4.jar">
-            <equals arg1="${java.specification.version}" arg2="1.6"/>
-        </condition>
-        <property name="mssql.driver" value="sqljdbc.jar"/>
-        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-mssql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-ibmdb2_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-pgsql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-mysql_jndi"/></antcall>
-
-        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-sybase_jndi"/></antcall>
-
-    </target>
-
-    <!-- ##################################### -->
-
-    <target  name="junit-tests">
-
-        <echo message="Running junit test group ${tests} from basedir=${basedir}"/>
-
-        <java classname="org.junit.runner.JUnitCore" fork="true">
-            <classpath>
-
-                <pathelement location="../ext/junit-4.6.jar"/>
-
-                <fileset dir="tests/build">
-                    <include name="jbossts-*-qa.jar"/>
-                </fileset>
-
-                <fileset dir="../install/lib">
-                    <include name="*.jar"/>
-                </fileset>
-                <fileset dir="../install/lib/ext">
-                    <include name="*.jar"/>
-                    <include name="*.zip"/>
-                </fileset>
-                <pathelement location="../install/etc"/>
-
-
-            </classpath>
-
-            <arg  value="org.jboss.jbossts.qa.junit.testgroup.TestGroup_${tests}"/>
-
-            <!--<jvmarg value="-Xdebug"/>-->
-            <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/>-->
-        </java>
-    </target>
-
-    <!-- ##################################### -->
-
-    <target name="junit-tests-old">
-
-        <echo message="Running test group ${tests} from basedir=${basedir}"/>
-
-        <!-- by default we run in JTS config. Override by setting this property
-            before antcalling the test target -->
-        <property name="use_jta_mode" value="false"/>
-        <condition property="product_file" value="JBossTS_JTA_QA.xml">
-            <istrue value="${use_jta_mode}"/>
-        </condition>
-        <property name="product_file" value="JBossTS_JTS_JacORB_QA.xml"/>
-
-        <echo  message="Running with config ${product_file}"/>
-
-        <!-- this runs forked because the product config file it uses has relative paths in it, so we need to guarantee
-            the working dir is the same as the location of this script.
-		TODO: investigate why it needs such a large memory footprint. I suspect it's buffering
-		the entire stdout, which is big for longer runs as DTF tends to be rather verbose.
-		But with 10MB of stdout based on text file size, junit needs >128MB of memory???
-		Stopping the buffering would be nice anyhow, as it stands we don't see any output in the file
-		until the tests are all done, which makes following progress a bit of a problem. -->
-        <junit printsummary="yes" haltonfailure="yes" fork="true" dir="${basedir}" maxmemory="192m">
-            <classpath>
-                <path refid="tests.classpath"/>
-            </classpath>
-
-            <formatter type="plain"/>
-
-            <sysproperty key="testdefsFile" value="${basedir}/testdefs/jbossts-qa-${tests}-testdefs.xml"/>
-            <sysproperty key="productConfigFile" value="${basedir}/config/${product_file}"/>
-            <sysproperty key="testnodeConfigFile" value="${basedir}/config/nodeconfig.xml"/>
-            <sysproperty key="testnamePattern" value=".*"/>
-
-            <test name="org.jboss.dtf.testframework.local.JUnitTestSuite" outfile="jbossts-qa-${tests}-output"/>
-
-        </junit>
-
-        <echo message="Done test group ${tests}"/>
-    </target>
-
-    <target name="performance">
-        <!-- caution: perf tests are essentially regression tests and are only meaningful
-            if used with the same hardware (profile) and config between runs. -->
-
-        <!-- perfprofileio : 18 tests, 9 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="perfprofileio"/></antcall>
-        <!-- perfprofile01_i (JTS implicit) : 25 tests, 31 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="perfprofile01_i"/></antcall>
-        <!-- perfprofile01_e (JTS explicit) : 25 tests, 35 minutes -->
-        <antcall target="junit-tests"><param name="tests" value="perfprofile01_e"/></antcall>
-    </target>
-
-
-
-    <target name="scratch">
-
-        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
-        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_oracle_thin_jndi"/></antcall>
-
-    </target>
-
-<!--
-    unused examples of other approaches to running tests:
-
-    <target name="run2">
-        <java classname="org.jboss.dtf.testframework.local.JUnitTestSuite" fork="true">
-            <classpath>
-                <path refid="tests.classpath"/>
-            </classpath>
-
-            <arg value="./testdefs/jbossts-qa-txcore-testdefs.xml"/>
-            <arg value="config/JBossTS_JTS_JacORB_QA.xml"/>
-            <arg value="config/nodeconfig.xml-local"/>
-            <arg value=".*"/>
-
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"/>
-
-        </java>
-    </target>
-
-    <target name="run">
-        <antcall target="run-tests"><param name="testdefs.filename" value="jbossts-qa-txcore-testdefs.xml"/></antcall>
-    </target>
-
-    <target name="run-tests">
-        <java classname="org.jboss.dtf.testframework.local.LocalTestManager" fork="true">
-            <classpath>
-                <path refid="tests.classpath"/>
-                <pathelement location="/usr/local/javastuff/jdom-1.1/lib/xerces.jar"/>
-            </classpath>
-            <arg value="file:///home/jhalli/IdeaProjects/jboss/jbossts_trunk/qa/testdefs/${testdefs.filename}"/>
-            <arg value="/home/jhalli/IdeaProjects/jboss/jbossts_trunk/qa/config/JBossTS_JTS_JacORB_QA.xml"/>
-            <arg value="file:///home/jhalli/IdeaProjects/jboss/jbossts_trunk/qa/config/nodeconfig.xml"/>
-
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
-
-        </java>
-    </target>
--->
-</project>

Copied: labs/jbosstm/trunk/qa/run-tests.xml (from rev 28048, labs/jbosstm/trunk/qa/run-dtf-local.xml)
===================================================================
--- labs/jbosstm/trunk/qa/run-tests.xml	                        (rev 0)
+++ labs/jbosstm/trunk/qa/run-tests.xml	2009-07-15 13:44:51 UTC (rev 28051)
@@ -0,0 +1,391 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2008, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags.
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+  You should have received a copy of the GNU Lesser General Public License,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+  MA  02110-1301, USA.
+
+  (C) 2008,
+  @author JBoss Inc.
+-->
+
+<!--
+  Ant build script for running QA tests using junit.
+
+  For JBossTS JTS builds.
+
+  1) Run the top level JBossTS ant build:  ant jts
+  2) Run the tests:  ant -f run-tests.xml
+
+  For general tests plus JDBC (e.g. use on hudson):
+    cd qa
+    ant get.drivers dist
+    ant -f run-dtf-local.xml junit junit-jdbc
+
+  Paths are relative to the JVM's working dir - don't expect to be able to execute this from anywhere but 'qa'.
+
+-->
+<project name="QA Tests for JBossTS" default="junit" basedir=".">
+
+    <property name="working.dir" location="build"/>
+
+    <!-- handy utility space where you can copy one or more test groups if you want to run something ah-hoc -->
+    <target name="scratch">
+
+        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_oracle_thin_jndi"/></antcall>
+
+    </target>
+
+    <!-- a faster subset of the tests for smoke testing. aim to keep to under one hour total. -->
+    <target name="express">
+
+        <!-- currenttests01 : 36 tests, 3 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="currenttests01"/></antcall>
+        <!-- jtatests01 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
+        <!-- otsserver : 20 tests, 7 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="otsserver"/></antcall>
+
+        <!-- rawresources01_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources01_1"/></antcall>
+        <!-- rawresources02_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources02_1"/></antcall>
+        <!-- rawsubtransactionawareresources01_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
+        <!-- rawsubtransactionawareresources02_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
+
+        <!-- crashrecovery01 : 24 tests, 6 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery01"/></antcall>
+        <!-- crashrecovery02_1 : 5 tests, 6 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_1"/></antcall>
+        <!-- crashrecovery03 : 1 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery03"/></antcall>
+        <!-- crashrecovery06 : 2 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery06"/></antcall>
+        <!-- crashrecovery12 : 7 tests, 5 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery12"/></antcall>
+
+    </target>
+
+    <!-- General tests.
+        Some groups take a really long time and are disabled by default.
+        The remaining tests should take a combined time of around 4hrs or so.
+    -->
+    <target name="junit">
+
+        <!-- currenttests01 : 36 tests, 3 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="currenttests01"/></antcall>
+        <!-- jtatests01 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
+        <!-- otsserver : 20 tests, 7 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="otsserver"/></antcall>
+
+        <!-- rawresources01_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources01_1"/></antcall>
+        <!-- rawresources01_2 : 294 tests, 30 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources01_2"/></antcall>
+        <!-- rawresources01_3 : 150 tests, 15 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources01_3"/></antcall>
+        <!-- rawresources02_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources02_1"/></antcall>
+        <!-- rawresources02_2 : 294 tests, 30 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources02_2"/></antcall>
+        <!-- rawresources02_3 : 150 tests, 15 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawresources02_3"/></antcall>
+
+        <!-- rawsubtransactionawareresources01_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_1"/></antcall>
+        <!-- rawsubtransactionawareresources01_2 : 10 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_2"/></antcall>
+        <!-- rawsubtransactionawareresources01_3 : 25 tests, 3 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources01_3"/></antcall>
+        <!-- rawsubtransactionawareresources02_1 : 6 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_1"/></antcall>
+        <!-- rawsubtransactionawareresources02_2 : 10 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_2"/></antcall>
+        <!-- rawsubtransactionawareresources02_3 : 25 tests, 3 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="rawsubtransactionawareresources02_3"/></antcall>
+
+        <!-- crashrecovery01 : 24 tests, 6 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery01"/></antcall>
+        <!-- crashrecovery02_1 : 5 tests, 6 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_1"/></antcall>
+        <!-- crashrecovery02_2 : 50 tests, 60 minutes -->
+        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery02_2"/></antcall> -->
+        <!-- crashrecovery03 : 1 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery03"/></antcall>
+        <!-- crashrecovery04 : 48 tests, 11 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery04"/></antcall>
+        <!-- crashrecovery05_1 : 10 tests, 12 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery05_1"/></antcall>
+        <!-- crashrecovery05_2 : 100 tests, 122 minutes -->
+        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery05_2"/></antcall> -->
+        <!-- crashrecovery06 : 2 tests, 1 minute -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery06"/></antcall>
+        <!-- crashrecovery07 : 16 tests, 87 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery07"/></antcall>
+        <!-- crashrecovery08 : 32 tests, 228 minutes -->
+        <!-- <antcall target="junit-tests"><param name="tests" value="crashrecovery08"/></antcall> -->
+        <!-- crashrecovery09 : 6 tests, 7 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery09"/></antcall>
+        <!-- crashrecovery10 : 6 tests, 7 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery10"/></antcall>
+        <!-- crashrecovery12 : 7 tests, 5 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery12"/></antcall>
+
+    </target>
+
+    <!-- long running crash rec test groups (the ones disabled in the 'junit' target) -->
+    <target name="junit-longer">
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery02_2"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery05_2"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery08"/></antcall>
+    </target>
+
+    <!-- copy the selected db driver out of the available set into the classpath.
+        See also build.xml get.drivers and TaskImpl.properties for classpath
+     -->
+    <target name="install-dbdriver">
+        <delete dir="dbdrivers/selected_dbdriver"/>
+        <mkdir dir="dbdrivers/selected_dbdriver"/>
+        <copy todir="dbdrivers/selected_dbdriver" flatten="true">
+            <fileset dir="dbdrivers/" includes="**/${files}"/>
+        </copy>
+    </target>
+
+    <!--  JDBC tests.
+        You'll need a qa/config/jdbc_profiles/<hostname>/JDBCProfiles file for your machine to run these ones,
+          although using the 'default' one is also an option.
+        Plus copies of the db drivers of course (try 'ant get.drivers' if inside the redhat network).
+        And a set of servers to run against. Did I mention it was complicated :-)
+    -->
+    <target  name="junit-jdbc">
+
+        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_oracle_thin_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_oracle_thin_jndi"/></antcall>
+
+        <!-- mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
+        <condition property="mssql.driver" value="sqljdbc4.jar">
+            <equals arg1="${java.specification.version}" arg2="1.6"/>
+        </condition>
+        <property name="mssql.driver" value="sqljdbc.jar"/>
+        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_mssqlserver_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_mssqlserver_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_ibmdb2_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_ibmdb2_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_pgsql_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_pgsql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_mysql_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_mysql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources01_sybase_jndi"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbcresources02_sybase_jndi"/></antcall>
+
+    </target>
+
+    <target name="junit-jdbc-crachrec">
+        <!-- crashrecovery11 : jdbc resource crash recovery tests. 4 tests, 4 minutes per db -->
+
+        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-oracle_jndi"/></antcall>
+
+         <!--mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
+        <condition property="mssql.driver" value="sqljdbc4.jar">
+            <equals arg1="${java.specification.version}" arg2="1.6"/>
+        </condition>
+        <property name="mssql.driver" value="sqljdbc.jar"/>
+        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-mssqlserver_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-ibmdb2_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-pgsql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-mysql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="crashrecovery11-sybase_jndi"/></antcall>
+
+    </target>
+
+    <target name="jta">
+        <property name="use_jta_mode" value="true"/>
+
+        <!-- txcore: 352 tests, 3.5 hrs
+            Some memory tests fail, see JBTM-555 -->
+        <!-- <antcall target="junit-tests"><param name="tests" value="txcore"/></antcall> -->
+
+        <!-- jtatest01 : 6 tests, minute-->
+        <antcall target="junit-tests"><param name="tests" value="jtatests01"/></antcall>
+
+        <!-- jdbclocals01 : 6 tests, 2 minutes for each db -->
+
+        <antcall target="install-dbdriver"><param name="files" value="ojdbc14.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-oracle_jndi"/></antcall>
+
+        <!-- mssql needs different .jar for jdk 1.5 vs. 1.6 runtime -->
+        <condition property="mssql.driver" value="sqljdbc4.jar">
+            <equals arg1="${java.specification.version}" arg2="1.6"/>
+        </condition>
+        <property name="mssql.driver" value="sqljdbc.jar"/>
+        <antcall target="install-dbdriver"><param name="files" value="${mssql.driver}"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-mssql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="db2*"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-ibmdb2_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="postgresql-8.3-603.jdbc3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-pgsql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="mysql-connector-java-5.1.7-bin.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-mysql_jndi"/></antcall>
+
+        <antcall target="install-dbdriver"><param name="files" value="jconn3.jar"/></antcall>
+        <antcall target="junit-tests"><param name="tests" value="jdbclocals01-sybase_jndi"/></antcall>
+
+    </target>
+
+    <target name="performance">
+        <!-- caution: perf tests are essentially regression tests and are only meaningful
+            if used with the same hardware (profile) and config between runs. -->
+
+        <!-- perfprofileio : 18 tests, 9 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="perfprofileio"/></antcall>
+        <!-- perfprofile01_i (JTS implicit) : 25 tests, 31 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="perfprofile01_i"/></antcall>
+        <!-- perfprofile01_e (JTS explicit) : 25 tests, 35 minutes -->
+        <antcall target="junit-tests"><param name="tests" value="perfprofile01_e"/></antcall>
+    </target>
+
+    <!-- ##################################### -->
+
+    <!-- This is where all the hard work happens - use junit to coordinate multi-process tests: -->
+    <target  name="junit-tests">
+
+        <!-- TODO support JTA mode testing of JTS .jar files? -
+            would need classpath munging for props file in TaskImpl.properties -->
+
+        <echo message="Running junit test group ${tests} from basedir=${basedir}"/>
+
+        <!-- this runs forked because the product config file it uses has relative paths in it, so we need to guarantee
+            the working dir is the same as the location of this script. -->
+        <junit printsummary="yes" haltonfailure="yes" fork="true" dir="${basedir}">
+            <classpath>
+
+                <!--
+                This is the classpath for the test framework, not the test components e.g. clients/servers.
+                Those are configured via TaskImpl.properties instead.
+
+                The test groups (org.jboss.jbossts.qa.junit.testgroup.TestGroup_XXXX classes) contains the
+                test methods, which link against the test classes, which in turn link against JBossTS.
+                Hence we need JBossTS in the classpath for the framework, even though it does not get run there.
+                On the up side, you get better diagnostic messages and code management/navigation in IDEs.
+                -->
+                <pathelement location="../ext/junit-4.6.jar"/>
+
+                <fileset dir="tests/build">
+                    <include name="jbossts-*-qa.jar"/>
+                </fileset>
+
+                <fileset dir="../install/lib">
+                    <include name="*.jar"/>
+                </fileset>
+                <fileset dir="../install/lib/ext">
+                    <include name="*.jar"/>
+                    <include name="*.zip"/>
+                </fileset>
+                <pathelement location="../install/etc"/>
+
+            </classpath>
+
+            <formatter type="plain"/>
+
+            <test name="org.jboss.jbossts.qa.junit.testgroup.TestGroup_${tests}"/>
+
+            <!--<jvmarg value="-Xdebug"/>-->
+            <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/>-->
+
+        </junit>
+
+<!--
+        <java classname="org.junit.runner.JUnitCore" fork="true">
+            <classpath>
+
+
+
+            </classpath>
+
+            <arg  value="org.jboss.jbossts.qa.junit.testgroup.TestGroup_${tests}"/>
+
+        </java>
+-->    </target>
+
+    <!-- ##################################### -->
+
+    <target name="junit-tests-old">
+
+        <echo message="Running test group ${tests} from basedir=${basedir}"/>
+
+        <!-- by default we run in JTS config. Override by setting this property
+            before antcalling the test target -->
+        <property name="use_jta_mode" value="false"/>
+        <condition property="product_file" value="JBossTS_JTA_QA.xml">
+            <istrue value="${use_jta_mode}"/>
+        </condition>
+        <property name="product_file" value="JBossTS_JTS_JacORB_QA.xml"/>
+
+        <echo  message="Running with config ${product_file}"/>
+
+        <!-- this runs forked because the product config file it uses has relative paths in it, so we need to guarantee
+            the working dir is the same as the location of this script.
+		TODO: investigate why it needs such a large memory footprint. I suspect it's buffering
+		the entire stdout, which is big for longer runs as DTF tends to be rather verbose.
+		But with 10MB of stdout based on text file size, junit needs >128MB of memory???
+		Stopping the buffering would be nice anyhow, as it stands we don't see any output in the file
+		until the tests are all done, which makes following progress a bit of a problem. -->
+        <junit printsummary="yes" haltonfailure="yes" fork="true" dir="${basedir}" maxmemory="192m">
+            <classpath>
+                <path refid="tests.classpath"/>
+            </classpath>
+
+            <formatter type="plain"/>
+
+            <sysproperty key="testdefsFile" value="${basedir}/testdefs/jbossts-qa-${tests}-testdefs.xml"/>
+            <sysproperty key="productConfigFile" value="${basedir}/config/${product_file}"/>
+            <sysproperty key="testnodeConfigFile" value="${basedir}/config/nodeconfig.xml"/>
+            <sysproperty key="testnamePattern" value=".*"/>
+
+            <test name="org.jboss.dtf.testframework.local.JUnitTestSuite" outfile="jbossts-qa-${tests}-output"/>
+
+        </junit>
+
+        <echo message="Done test group ${tests}"/>
+    </target>
+
+
+
+</project>


Property changes on: labs/jbosstm/trunk/qa/run-tests.xml
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: labs/jbosstm/trunk/qa/tests/build-jta.xml
===================================================================
--- labs/jbosstm/trunk/qa/tests/build-jta.xml	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/tests/build-jta.xml	2009-07-15 13:44:51 UTC (rev 28051)
@@ -88,7 +88,6 @@
 			<include name="**/org/jboss/jbossts/qa/astests/**/*.java"/>
 
             <exclude name="**/astests/**"/>
-            <exclude name="**/junit/XML2JUnit.java"/>
 
             <classpath>
 				<path refid="jta.classpath"/>

Modified: labs/jbosstm/trunk/qa/tests/build-jts.xml
===================================================================
--- labs/jbosstm/trunk/qa/tests/build-jts.xml	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/tests/build-jts.xml	2009-07-15 13:44:51 UTC (rev 28051)
@@ -220,7 +220,6 @@
 			<exclude name="org/jboss/jbossts/qa/ArjunaCore/Common/ClassPathParserTest.java" />
 
 			<exclude name="**/${astest.dir}/**/*.java" />
-            <exclude name="**/junit/XML2JUnit.java"/>
 
             <classpath>
 				<path refid="jts.classpath"/>

Deleted: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/XML2JUnit.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/XML2JUnit.java	2009-07-15 13:09:03 UTC (rev 28050)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/XML2JUnit.java	2009-07-15 13:44:51 UTC (rev 28051)
@@ -1,433 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2009, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2009,
- * @author JBoss Inc.
- */
-package org.jboss.jbossts.qa.junit;
-
-import org.jboss.dtf.testframework.coordinator2.TestDefinitionRepository;
-import org.jboss.dtf.testframework.coordinator2.TestDefinition;
-import org.jboss.dtf.testframework.coordinator2.TaskDefinition;
-import org.jboss.dtf.testframework.coordinator2.TaskDefinitionRepository;
-import org.jboss.dtf.testframework.coordinator.Action;
-
-import java.net.URL;
-import java.io.File;
-import java.io.FileWriter;
-import java.util.*;
-
-/**
- * Utility class that reads DTF -testdef.xml input and writes equivalent JUnit4 tests in .java source format.
- *
- * Usage: java org.jboss.dtf.testframework.junit.XML2JUnit <inputfile> <outputdir>
- *   e.g. java org.jboss.dtf.testframework.junit.XML2JUnit mytests-testdefs-xml /My/Tests/Dir
- *
- * @author Jonathan Halliday (jonathan.halliday at redhat.com) 2009-05
- */
-public class XML2JUnit
-{
-    public static void main(String[] args) throws Exception {
-        String testdefsFile = args[0];
-        TestDefinitionRepository testDefinitionRepository = new TestDefinitionRepository(new URL("file://"+(new File(testdefsFile).getAbsolutePath())));
-        TaskDefinitionRepository taskDefinitionRepository = new TaskDefinitionRepository(new URL("file://"+(new File(testdefsFile).getAbsolutePath())));
-
-        XML2JUnit instance = new XML2JUnit(testDefinitionRepository, taskDefinitionRepository);
-
-        String classname = instance.generateHeader();
-
-        instance.generateLifecycle();
-
-        instance.generateTests();
-        instance.generateFooter();
-
-        FileWriter fileWriter = new FileWriter(args[1]+File.separator+classname+".java");
-        fileWriter.write(instance.getBuffer());
-        fileWriter.close();
-    }
-
-
-    TestDefinitionRepository testDefinitionRepository = null;
-    TaskDefinitionRepository taskDefinitionRepository = null;
-    List<TestDefinition> testDefs = null;
-    StringBuilder buffer = null;
-    int nameCount = 0;
-
-    public XML2JUnit(TestDefinitionRepository testDefinitionRepository, TaskDefinitionRepository taskDefinitionRepository) {
-        this.testDefinitionRepository = testDefinitionRepository;
-        this.taskDefinitionRepository = taskDefinitionRepository;
-        this.buffer = new StringBuilder(512*1024);
-    }
-
-    public String getBuffer() {
-        return buffer.toString();
-    }
-
-    public String generateHeader() {
-        Map<String, TestDefinition> testIDs2testDefs = testDefinitionRepository.getTestDefinitionsMap();
-        testDefs = new ArrayList(testIDs2testDefs.values());
-        Collections.sort(testDefs, new TestDefinitionComparator());
-
-        String name = testDefs.get(0).getId().replace("-", "_").toLowerCase();
-        if(name.contains("_")) {
-            name = name.substring(0, name.lastIndexOf("_"));
-        }
-
-        buffer.append("\n");
-        buffer.append("package org.jboss.jbossts.qa.junit.generated;\n");
-        buffer.append("\n");
-        buffer.append("import org.jboss.jbossts.qa.junit.*;\n");
-        buffer.append("import org.junit.*;\n");
-        buffer.append("\n");
-        buffer.append("// Automatically generated by XML2JUnit\n");
-        buffer.append("public class TestGroup_"+name+" extends TestGroupBase\n");
-        buffer.append("{\n");
-
-        buffer.append("\tpublic String getTestGroupName()\n");
-        buffer.append("\t{\n");
-        buffer.append("\t\treturn \""+name+"\";\n");
-        buffer.append("\t}\n");
-        buffer.append("\n");
-
-        return "TestGroup_"+name;
-    }
-
-    public void generateFooter() {
-        buffer.append("}");
-    }
-
-    public void generateTests() throws Exception {
-        for(TestDefinition testDefinition : testDefs) {
-            buffer.append("\t at Test public void "+testDefinition.getId().replace("-", "_")+"()\n");
-            buffer.append("\t{\n");
-
-            String groupId = testDefinition.getGroupId();
-            String testId = testDefinition.getId();
-
-            if (testId.startsWith(groupId + "_")) {
-                testId = testId.substring(groupId.length() + 1);
-            }
-
-            testId = testId.replace("-", "_");
-
-            buffer.append("\t\tsetTestName(\""+testId+"\");\n" );
-
-            generateTest(testDefinition);
-            buffer.append("\t}\n\n");
-
-            nameCount = 0;
-        }
-    }
-
-    private static class TestDefinitionComparator implements Comparator<TestDefinition>
-    {
-        public int compare(TestDefinition o1, TestDefinition o2)
-        {
-            return o1.getId().compareTo(o2.getId());
-        }
-    }
-
-    private TaskDefinition getTaskDef(Action action, TestDefinition testDefinition) throws Exception {
-        TaskDefinition taskDefinition = null;
-        if(action.getType() == Action.PERFORM_TASK || action.getType() == Action.START_TASK) {
-            String groupId = testDefinition.getGroupId();
-            String taskIdToPerform	= action.getAssociatedTaskId();
-            taskDefinition = taskDefinitionRepository.getTaskDefinition(groupId, taskIdToPerform);
-            if (taskDefinition == null)
-            {
-                taskDefinition = taskDefinitionRepository.getTaskDefinition(taskIdToPerform);
-            }
-        }
-        return taskDefinition;
-    }
-
-    // identify required contents of setUp and tearDown
-    public void generateLifecycle() throws Exception {
-
-        // EmptyObjectStore is in the test base class, don't generate for it
-        for(TestDefinition testDefinition : testDefs) {
-            ArrayList<Action> actionList = testDefinition.getActionList();
-            TaskDefinition taskDefinition = getTaskDef(actionList.remove(0), testDefinition);
-            if(taskDefinition == null || !taskDefinition.getClassName().equals("org.jboss.jbossts.qa.Utils.EmptyObjectStore")) {
-                throw new IllegalArgumentException("Test does not start with EmptyObjectStore");
-            }
-        }
-
-        int startingBufferPosition = buffer.length();
-
-        buffer.append("\n\t at Before public void setUp()\n");
-        buffer.append("\t{\n");
-        buffer.append("\t\tsuper.setUp();\n");
-
-        List<Action> outstandingActions = generateCommonTasks(false, null); // setUp method
-
-        if(outstandingActions.size() > 0) {
-            generateLocalVariables(startingBufferPosition, outstandingActions);
-        }
-
-        buffer.append("\t}\n\n");
-
-        buffer.append("\t at After public void tearDown()\n");
-        buffer.append("\t{\n");
-        // do the per server terminates inside a try blockso we can guarantee to call super.tearDown in
-        // a finally block if any of them fails
-        buffer.append("\t\ttry {\n");
-
-        generateCommonTasks(true, outstandingActions); // tearDown method
-
-        buffer.append("\t\t} finally {\n");
-        buffer.append("\t\t\tsuper.tearDown();\n");
-        buffer.append("\t\t}\n");
-        buffer.append("\t}\n\n");
-    }
-
-    private void generateLocalVariables(int startingBufferPosition, List<Action> actions) throws Exception {
-        for(Action action : actions) {
-            buffer.insert(startingBufferPosition, "\tprotected Task "+action.getAssociatedRuntimeTaskId()+" = null;\n");
-        }
-    }
-
-    private List<Action> generateCommonTasks(boolean fromEnd, List<Action> terminationActions) throws Exception {
-
-        if(terminationActions != null) {
-            for(Action action : terminationActions) {
-                generateTask(action,testDefs.get(0), true);
-            }
-        }
-
-        TaskDefinition candidateCommonTask;
-        List<Action> outstandingActions = new LinkedList<Action>();
-        do {
-            candidateCommonTask = null;
-            for(TestDefinition testDefinition : testDefs) {
-                int index = fromEnd ? (testDefinition.getActionList().size()-1) : 0;
-                Action action = (Action)testDefinition.getActionList().get(index);
-                TaskDefinition taskDef = getTaskDef(action, testDefinition);
-                if(taskDef == null) {
-                    break;
-                }
-                if(candidateCommonTask == null
-                    && taskDef.getClassName().indexOf(".Server") == -1
-                    && taskDef.getClassName().indexOf(".Client") == -1) {
-                    candidateCommonTask = taskDef;
-                } else if(candidateCommonTask == null) {
-                    continue;
-                } else if(taskDef.getClassName().equals(candidateCommonTask.getClassName())
-                        && taskDef.getParameters().equals(candidateCommonTask.getParameters())) {
-                    continue;
-                } else {
-                    candidateCommonTask = null;
-                    break;
-                }
-            }
-            if(candidateCommonTask != null) {
-
-                TestDefinition testDef = testDefs.get(0);
-                int index = fromEnd ? (testDef.getActionList().size()-1) : 0;
-                Action action = (Action)testDef.getActionList().get(index);
-                boolean isSetup = !fromEnd;
-                generateTask(action, testDef, isSetup);
-
-                for(TestDefinition testDefinition : testDefs) {
-                    index = fromEnd ? (testDefinition.getActionList().size()-1) : 0;
-                    testDefinition.getActionList().remove(index);
-                }
-
-                if(!fromEnd && action.getType() == Action.START_TASK) {
-
-                    boolean actionAdded = false;
-                    for(TestDefinition testDefinition : testDefs) {
-                        ArrayList<Action> actionList = testDefinition.getActionList();
-                        Iterator<Action> actionIter = actionList.iterator();
-                        while(actionIter.hasNext()) {
-                            Action candidateTerminatorAction = actionIter.next();
-                            try {
-                            if(candidateTerminatorAction.getAssociatedRuntimeTaskId().equals(action.getAssociatedRuntimeTaskId())
-                                    && candidateTerminatorAction.getType() == Action.TERMINATE_TASK) {
-                                actionIter.remove();
-                                if(!actionAdded) {
-                                    outstandingActions.add(candidateTerminatorAction);
-                                    actionAdded = true;
-                                }
-                                break;
-                            }
-                            } catch(NullPointerException e) {
-                                e.printStackTrace();
-                            }
-                        }
-                    }
-                }
-            }
-        } while (candidateCommonTask != null);
-
-        return outstandingActions;
-    }
-
-    public String[] filterParams(String[] params) {
-        List<String> filteredParams = new ArrayList<String>(params.length);
-        for(String param : params) {
-            if("$(ORBFLAGS_1)".equals(param)
-                    || "$(ORBFLAGS_2)".equals(param)) {
-                continue;
-            }
-            filteredParams.add(param);
-        }
-        return filteredParams.toArray(new String[filteredParams.size()]);
-    }
-
-    public void generateTask(Action action, TestDefinition testDefinition, boolean isSetup) throws Exception {
-
-        TaskDefinition taskDefinition = getTaskDef(action, testDefinition);
-        String outputDirectory;
-        String filename;
-        int timeout;
-
-        switch(action.getType()) {
-            case Action.PERFORM_TASK:
-                String name = (action.getAssociatedRuntimeTaskId() == null ? ("task"+(nameCount++)) : action.getAssociatedRuntimeTaskId());
-                outputDirectory = testOutputDirectory(testDefinition, isSetup);
-                filename = testOutputFilename(testDefinition, name);
-                timeout = testTimeout(action, testDefinition);
-
-                buffer.append("\t\tTask "+name+" = createTask(");
-                buffer.append("\""+name+"\", ");
-                buffer.append(taskDefinition.getClassName()+".class, Task.TaskType."+taskDefinition.getTypeText());
-                //buffer.append(", \"" + outputDirectory + filename + "\", " + timeout + ");\n");
-                buffer.append(", "+timeout+ ");\n");
-
-                if(action.getParameterList().length != 0) {
-                    buffer.append("\t\t"+name+".perform("); // new String[] {
-
-                    String[] params = filterParams(action.getParameterList());
-                    int length = params.length;
-                    for(int i = 0; i < length; i++) {
-                        String param = params[i];
-                        buffer.append("\""+param+"\"");
-                        if(i != length-1) {
-                            buffer.append(", ");
-                        }
-                    }
-                    buffer.append(");\n"); // }
-                } else {
-                    buffer.append("\t\t"+name+".perform();\n");
-                }
-                break;
-            case Action.START_TASK:
-                if(isSetup) {
-                    buffer.append("\t\t"); // use local variable, don't declate a new one
-                } else {
-                    buffer.append("\t\tTask ");
-                }
-                outputDirectory = testOutputDirectory(testDefinition, isSetup);
-                filename = testOutputFilename(testDefinition, action.getAssociatedRuntimeTaskId());
-                timeout = testTimeout(action, testDefinition);
-
-                buffer.append(action.getAssociatedRuntimeTaskId() + " = createTask(");
-                buffer.append("\""+action.getAssociatedRuntimeTaskId()+"\", ");
-                buffer.append(taskDefinition.getClassName()+".class, Task.TaskType."+taskDefinition.getTypeText());
-                //buffer.append(", \"" + outputDirectory + filename + "\", " + timeout + ");\n");
-                buffer.append(", "+timeout+ ");\n");
-                                
-                if(action.getParameterList().length != 0) {
-                    buffer.append("\t\t"+action.getAssociatedRuntimeTaskId()+".start("); // new String[] {
-
-                    String[] params = filterParams(action.getParameterList());
-                    int length = params.length;
-                    for(int i = 0; i < length; i++) {
-                        String param = params[i];
-                        buffer.append("\""+param+"\"");
-                        if(i != length-1) {
-                            buffer.append(", ");
-                        }
-                    }
-                    buffer.append(");\n"); // }
-                } else {
-                    buffer.append("\t\t"+action.getAssociatedRuntimeTaskId()+".start();\n");
-                }
-                break;
-            case Action.TERMINATE_TASK:
-                if (isSetup) {
-                    buffer.append("\t\t\t"+action.getAssociatedRuntimeTaskId()+".terminate();\n");
-                } else {
-                    buffer.append("\t\t"+action.getAssociatedRuntimeTaskId()+".terminate();\n");
-                }
-                break;
-            case Action.WAIT_FOR_TASK:
-                buffer.append("\t\t"+action.getAssociatedRuntimeTaskId()+".waitFor();\n");
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown Action type "+action.getType());
-        }
-    }
-
-    private String testOutputFilename(TestDefinition testDefinition, String name) {
-        // TODO - identify a better naming scheme
-        return name + "_output.txt";
-    }
-
-    private String testOutputDirectory(TestDefinition testDefinition, boolean isSetup) {
-        // TODO - identify a better naming scheme
-
-        String groupId = testDefinition.getGroupId();
-        if (isSetup) {
-            // setup tasks write their output in the parent directory
-            return "./testoutput/" + groupId + "/";
-        } else {
-            String testId = testDefinition.getId();
-
-            if (testId.startsWith(groupId + "_")) {
-                testId = testId.substring(groupId.length() + 1);
-            }
-
-            return "./testoutput/" + groupId + "/" + testId.replace("-", "_") + "/";
-        }
-    }
-
-    private int testTimeout(Action action, TestDefinition testDefinition)
-    {
-        int timeout = 480;
-        try {
-            TaskDefinition taskDef = getTaskDef(action, testDefinition);
-            if (taskDef != null) {
-                timeout = taskDef.getTimeout();
-            }
-        } catch (Exception e) {
-            // ignore -- just use default timeout
-        }
-
-        return timeout;
-    }
-
-    public void generateTest(TestDefinition testDefinition) throws Exception {
-
-        if(testDefinition == null) {
-            throw new IllegalArgumentException("testDefinition must not be null!");
-        }
-
-        if(testDefinition.getNumberOfNodesRequired() != 1) {
-            System.err.println("Unsupported node count "+testDefinition.getNumberOfNodesRequired()+" for test "+testDefinition.getDescription()+", skipping it");
-            return;
-        }
-
-        ArrayList<Action> actionList = testDefinition.getActionList();
-
-        for(Action action : actionList) {
-            generateTask(action, testDefinition, false);
-        }
-    }
-}
-




More information about the jboss-svn-commits mailing list