db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michelle Caisse <Michelle.Cai...@Sun.COM>
Subject Re: TestRunner status
Date Tue, 31 May 2005 18:56:08 GMT
Michael,

Thanks for your comments.  My responses are inline.

Michael Bouschen wrote:

> Hi Michelle,
>
> this looks very good!
>
> I have some minor questions/remarks below ...
>
>
>> TestRunner is a project to automate running the TCK for all 
>> databases, identity types, security settings, schemas, mappings, and 
>> test cases with a single maven invocation.  We discussed doing the 
>> hard stuff either in maven or with an extended java/JUnit 
>> TestRunner.  It seems possible to do it in maven.  Below is a working 
>> outline of a maven goal that loops through the various parameters and 
>> repeatedly executes a test run, followed by the results generated by 
>> this goal.
>>
>> _______________
>> maven.xml:
>> _______________
>>
>> <project default="default"
>>    xmlns:j="jelly:core"
>>    xmlns:ant="jelly:ant"
>>    xmlns:maven="jelly:maven"
>>    xmlns:u="jelly:util"
>>    >
>> ...
>>    <!-- ================== -->
>>    <!-- Running test cases -->
>>    <!-- ================== -->
>>
>>    <preGoal name="runallcfgs.jdori">
>>
>>        <!-- Install schema for each database -->
>>        <u:properties file="${basedir}/test/conf/db.list"/>
>>        <u:tokenize var="jdo.tck.dblist" delim=" ">
>>            ${jdo.tck.dblist}
>>        </u:tokenize>
>
>
> Question: The property jdo.tck.dblist is a string of database names 
> separated by space and the tokenize tag converts this string into a 
> collection of strings (one string per database) such that you can use 
> the forEach tag to iterate it. Am I right?
>
> The forEach tag allows to directly iterate a comma separated String (see
> http://jakarta.apache.org/commons/jelly/tags.html#core:forEach). So if 
> we define jdo.tck.dblist as comma separated string we do not need the 
> tokenize:
> jdo.tck.dblist=derby, mysql, oracle

I agree that this ought to work, but I have not been able to make it 
work.  I saw sample code somewhere that used the tokenize tag for a 
similar situation, so perhaps it is necessary.  I did some experiments, 
entering the databases as a comma-delimited list and running with and 
without tokenization.  Echoing the  property before and after 
tokenization, I get:

    [echo] jdo.tck.dblist (before tokenization) = derby,mysql,oracle

    [echo] jdo.tck.dblist (after tokenization) = [derby, mysql, oracle]

Entering the list in the file exactly like the tokenization output still 
did not result in forEach recognizing individual tokens.  For everything 
I tried, it treats the entire list as one item.

>
>>        <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
>>            <attainGoal name="databaseStub"/>
>>        </j:forEach>
>>
>>        <!-- Enhance and build jar file for each identity type -->
>>        <u:properties file="${basedir}/test/conf/identity.list"/>
>>        <u:tokenize var="jdo.tck.idlist" delim=" ">
>>            ${jdo.tck.idlist}
>>        </u:tokenize>
>>        <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
>>            <attainGoal name="enhanceStub"/>
>>        </j:forEach>
>>
>>    </preGoal>
>>
>>    <goal name="runallcfgs.jdori" prereqs="java:compile, 
>> testrunner.set, copyprops">
>>
>>        <!-- Run tests for all databases, identity types, and 
>> configurations -->
>>        <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
>>            <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
>>                <u:properties 
>> file="${basedir}/test/conf/configurations.list"/>
>
>
> Is there any reason to load the configurations properties here instead 
> of doing this in the preGoal along with the other properties files? I 
> think having the <u:properties> tag as part of the inner loop means 
> the file is loaded multiple times. Or does the file 
> configurations.list refer any properties that are changed in the loops?

Good point.  I pulled this out and put it in the preGoal.

-- Michelle

>
> Regards Michael
>
>>                <u:tokenize var="jdo.tck.cfglist" delim=" ">
>>                    ${jdo.tck.cfglist}
>>                </u:tokenize>
>>                <j:forEach var="jdo.tck.cfg" items="${jdo.tck.cfglist}">
>>                    <!-- get jdo.tck.classes (list of testclasses), 
>> jdo.tck.testdata, jdo.tck.mapping -->
>>                    <u:properties 
>> file="${basedir}/test/conf/${jdo.tck.cfg}"/>
>>                    <attainGoal name="runtckStub"/>
>>                </j:forEach>
>>            </j:forEach>
>>        </j:forEach>
>>
>>    </goal>
>>
>>    <goal name="databaseStub">
>>        <echo>Install schema in ${jdo.tck.db}</echo>
>>    </goal>
>>
>>    <goal name="enhanceStub">
>>        <echo>Enhance classes for ${jdo.tck.id}</echo>
>>    </goal>
>>
>>    <goal name="runtckStub">
>>        <echo>Run tck using database ${jdo.tck.db},
>>                 identity type ${jdo.tck.id},
>>                 configuration ${jdo.tck.cfg}
>>        </echo>
>>        <echo>Run test classes ${jdo.tck.classes}
>>                with test data ${jdo.tck.testdata}
>>                and mapping/schema files ${jdo.tck.mapping}
>>        </echo>
>>    </goal>
>>
>> _______________
>> Results:
>> _______________
>> $ maven -o runallcfgs.jdori
>> __  __
>> |  \/  |__ _Apache__ ___
>> | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
>> |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
>>
>> You are working offline so the build will continue, but 
>> jpox-SNAPSHOT.jar may be out of date!
>> You are working offline so the build will continue, but 
>> jdo2-api-SNAPSHOT.jar may be out of date!
>> You are working offline so the build will continue, but 
>> jpox-enhancer-SNAPSHOT.jar may be out of date!
>> build:start:
>>
>> java:prepare-filesystem:
>>
>> java:compile:
>>    [echo] Compiling to c:\svn5\jdo\trunk\tck20/target/classes
>>
>> testrunner.set:
>>
>> copyprops:
>>
>> runallcfgs.jdori:
>> databaseStub:
>>    [echo] Install schema in derby
>>
>> databaseStub:
>>    [echo] Install schema in mysql
>>
>> databaseStub:
>>    [echo] Install schema in oracle
>>
>> enhanceStub:
>>    [echo] Enhance classes for application
>>
>> enhanceStub:
>>    [echo] Enhance classes for datastore
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type application,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type application,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type application,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type datastore,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
>> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jd
>> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo
>> .tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type datastore,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database derby,
>>                 identity type datastore,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type application,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
>> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jd
>> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo
>> .tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type application,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type application,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type datastore,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type datastore,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database mysql,
>>                 identity type datastore,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type application,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type application,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type application,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type datastore,
>>                 configuration cfg1.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient 
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable 
>>
>>                with test data
>>                and mapping/schema files
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type datastore,
>>                 configuration cfg2.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>>    [echo] Run tck using database oracle,
>>                 identity type datastore,
>>                 configuration cfg3.conf
>>
>>    [echo] Run test classes 
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>>                with test data org.apache.jdo.tck.pc.company.company2.xml
>>                and mapping/schema files 
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>> BUILD SUCCESSFUL
>>
>> -- Michelle
>
>
>


Mime
View raw message