You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Craig L Russell <Cr...@Sun.COM> on 2005/12/31 21:55:28 UTC
Re: svn commit: r360206 - /db/jdo/trunk/tck20/maven.xml
Hi Matthew,
This is great. Debugging the TCK with a real debugger. Imagine!
Craig
On Dec 30, 2005, at 4:24 PM, madams@apache.org wrote:
> Author: madams
> Date: Fri Dec 30 16:24:19 2005
> New Revision: 360206
>
> URL: http://svn.apache.org/viewcvs?rev=360206&view=rev
> Log:
> added debugability with goals "debugtck.jdori" and "debugtck.iut"
>
> Modified:
> db/jdo/trunk/tck20/maven.xml
>
> Modified: db/jdo/trunk/tck20/maven.xml
> URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/maven.xml?
> rev=360206&r1=360205&r2=360206&view=diff
> ======================================================================
> ========
> --- db/jdo/trunk/tck20/maven.xml (original)
> +++ db/jdo/trunk/tck20/maven.xml Fri Dec 30 16:24:19 2005
> @@ -33,23 +33,38 @@
> <goal name="help">
> <echo>Custom goals for this project are:</echo>
> <echo> installSchema - installs the database schema</echo>
> + <echo></echo>
> <echo> enhance.iut - enhances persistence capable classes
> with the implementation under test enhancer if enhancement is not
> up to date</echo>
> <echo> enhance.jdori - enhances persistence capable
> classes with the JDO Reference Implementation enhancer if
> enhancement is not up to date</echo>
> + <echo></echo>
> <echo> runtck.iut - runs the TCK on the implementation
> under test</echo>
> <echo> runtck.jdori - runs the TCK on the JDO Reference
> Implementation</echo>
> <echo></echo>
> + <echo> debugtck.jdori - waits for a debugger to attach
> and then runs the TCK on the JDO RI</echo>
> + <echo> debugtck.iut - waits for a debugger to attach and
> then runs the TCK on the implementation under test</echo>
> + <echo></echo>
> + <echo></echo>
> <echo>Options for this project are:</echo>
> <echo> -Djdo.tck.cfglist=xxx - a list of configuration
> files (must be in test/conf)</echo>
> <echo> -Djdo.tck.dblist=xxx - a list of databases</echo>
> <echo> -Djdo.tck.identitytypes=xxx - a list of identity
> types (applicationidentity, datastoreidentity)</echo>
> <echo> -Djdo.tck.cleanupaftertest=xxx - true/false.
> Setting it to false will retain data in database after test. This
> will allow inspection of data after test is run. Default is true</
> echo>
> + <echo> -Djdo.tck.debug.port=##### - the port number the
> JVM should listen for a debugger on (default 8787)</echo>
> + <echo> -Djdo.tck.debug.jvmargs=xxx - the "-Xdebug ..."
> arguments in the event you want to supply your own debug
> directives</echo>
> <echo></echo>
> <echo>Examples:</echo>
> <echo> maven -Djdo.tck.identitytypes=datastoreidentity
> installSchema</echo>
> <echo> Installs the database schema for datastore
> identity for all supported databases</echo>
> + <echo></echo>
> <echo> maven -Djdo.tck.cfglist="alltests.conf cfg1.conf"
> runtck.jdori</echo>
> <echo> Runs the test configurations specified in
> alltests.conf and cfg1.conf on the JDORI, using all supported
> identity types and databases. </echo>
> <echo></echo>
> + <echo> maven -Djdo.tck.cfglist=detach.conf
> debugtck.jdori</echo>
> + <echo> Runs the test detach.conf configuration,
> waiting for a debugger to attach on the default port</echo>
> + <echo></echo>
> + <echo> maven -Djdo.tck.cfglist=detach.conf -
> Djdo.tck.debug.port=9343 debugtck.jdori</echo>
> + <echo> Runs the test detach.conf configuration,
> waiting for a debugger to attach on port 9343</echo>
> + <echo></echo>
> <echo>Note:</echo>
> <echo> By default, the database schema is NOT installed
> when the custom goals runtck.iut and runtck.jdori are run.</echo>
> <echo> maven build installs the database schema and runs
> the TCK on the JDO Reference Implementation.</echo>
> @@ -201,6 +216,25 @@
> <!-- Run test cases -->
> <!-- ================== -->
>
> + <goal name="debugtck.iut">
> + <j:set var="debugJvmargs" value="${jdo.tck.debug.jvmargs}"
> defaultValue=""/>
> + <j:if test="${debugJvmargs == ''}">
> + <j:set var="debugPort" value="${jdo.tck.debug.port}"
> defaultValue=""/>
> + <j:if test="${debugPort == ''}">
> + <property name="jdo.tck.debug.port" value="8787"/>
> + </j:if>
> +
> + <property name="jdo.tck.debug.jvmargs"
> + value="-Xdebug -Xnoagent -Djava.compiler=NONE -
> Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$
> {jdo.tck.debug.port}"
> + />
> + </j:if>
> +
> + <echo>Using debug arguments:</echo>
> + <echo>${jdo.tck.debug.jvmargs}</echo>
> +
> + <attainGoal name="runtck.iut"/>
> + </goal>
> +
> <goal name="runtck.iut" prereqs="setProps">
> <mkdir dir="${jdo.tck.log.directory.database}"/>
> <attainGoal name="privateRuntck.iut"/>
> @@ -238,6 +272,25 @@
> </j:forEach>
> </goal>
>
> + <goal name="debugtck.jdori">
> + <j:set var="debugJvmargs" value="${jdo.tck.debug.jvmargs}"
> defaultValue=""/>
> + <j:if test="${debugJvmargs == ''}">
> + <j:set var="debugPort" value="${jdo.tck.debug.port}"
> defaultValue=""/>
> + <j:if test="${debugPort == ''}">
> + <property name="jdo.tck.debug.port" value="8787"/>
> + </j:if>
> +
> + <property name="jdo.tck.debug.jvmargs"
> + value="-Xdebug -Xnoagent -Djava.compiler=NONE -
> Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$
> {jdo.tck.debug.port}"
> + />
> + </j:if>
> +
> + <echo>Using debug arguments:</echo>
> + <echo>${jdo.tck.debug.jvmargs}</echo>
> +
> + <attainGoal name="runtck.jdori"/>
> + </goal>
> +
> <goal name="runtck.jdori" prereqs="setProps">
> <mkdir dir="${jdo.tck.log.directory.database}"/>
> <attainGoal name="privateRuntck.jdori"/>
> @@ -290,6 +343,13 @@
> javax.jdo.option.Mapping=${jdo.tck.database}$
> {jdo.tck.mapping}
> javax.jdo.mapping.Schema=${schemaname}
> </j:file>
> +
> +
> + <j:set var="debugJvmargs" value="${jdo.tck.debug.jvmargs}"/>
> + <j:if test="${debugJvmargs != ''}">
> + <echo>JVM will wait until debugger attaches on port $
> {jdo.tck.debug.port}...</echo>
> + </j:if>
> +
> <java fork="yes" dir="${jdo.tck.testdir}"
> classname="${jdo.tck.testrunnerclass}">
> <classpath refid="this.project.class.path"/>
> @@ -319,8 +379,11 @@
> value="${jdo.tck.cleanupaftertest}"/>
> <sysproperty key="jdo.tck.requiredOptions"
> value="${jdo.tck.requiredOptions}"/>
> +
> <jvmarg line="${database.runtck.sysproperties}"/>
> <jvmarg line="${iut.runtck.sysproperties}"/>
> + <jvmarg line="${jdo.tck.debug.jvmargs}"/>
> +
> <arg line="${jdo.tck.classes}"/>
> </java>
> </goal>
> @@ -339,6 +402,12 @@
> javax.jdo.option.Mapping=${jdo.tck.database}$
> {jdo.tck.mapping}
> javax.jdo.mapping.Schema=${schemaname}
> </j:file>
> +
> + <j:set var="debugJvmargs" value="${jdo.tck.debug.jvmargs}"/>
> + <j:if test="${debugJvmargs != ''}">
> + <echo>JVM will wait until debugger attaches on port $
> {jdo.tck.debug.port}...</echo>
> + </j:if>
> +
> <j:set var="jdo.tck.testrunnerclass"
> value="org.apache.jdo.tck.util.BatchTestRunner"/>
> <java fork="yes" dir="${jdo.tck.testdir}"
> @@ -370,8 +439,11 @@
> value="${jdo.tck.cleanupaftertest}"/>
> <sysproperty key="jdo.tck.requiredOptions"
> value="${jdo.tck.requiredOptions}"/>
> +
> <jvmarg line="${database.runtck.sysproperties}"/>
> <jvmarg line="${jdo.runtck.sysproperties}"/>
> + <jvmarg line="${jdo.tck.debug.jvmargs}"/>
> +
> <arg line="${jdo.tck.classes}"/>
> </java>
> <echo>Finished run with database="${jdo.tck.database}"
> identitytype="${jdo.tck.identitytype}" mapping="$
> {jdo.tck.mapping}".</echo>
>
>
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!