You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2008/03/31 10:14:32 UTC
svn commit: r642920 - in /harmony/enhanced/buildtest/trunk/infra: build.xml
scripts/config.xml scripts/framework.properties scripts/framework.xml
Author: smishura
Date: Mon Mar 31 01:14:30 2008
New Revision: 642920
URL: http://svn.apache.org/viewvc?rev=642920&view=rev
Log:
* Add generation of selected-suites.properties
* Switch to configs files (selected-suites.properties & required-parameters.properties)
created by config.xml
Modified:
harmony/enhanced/buildtest/trunk/infra/build.xml
harmony/enhanced/buildtest/trunk/infra/scripts/config.xml
harmony/enhanced/buildtest/trunk/infra/scripts/framework.properties
harmony/enhanced/buildtest/trunk/infra/scripts/framework.xml
Modified: harmony/enhanced/buildtest/trunk/infra/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/infra/build.xml?rev=642920&r1=642919&r2=642920&view=diff
==============================================================================
--- harmony/enhanced/buildtest/trunk/infra/build.xml (original)
+++ harmony/enhanced/buildtest/trunk/infra/build.xml Mon Mar 31 01:14:30 2008
@@ -246,31 +246,8 @@
Framework Setup Functionality
================================================================== -->
- <target name="setup"
- depends="setup-framework,
- -save-suites-configuration,
- load-required-parameters,
- save-required-parameters" />
-
- <target name="-save-suites-configuration" depends="define-ant-contrib">
- <echo file="${selected.suites.configuration}"># autogenerated file containing test run setup information
-
-# Selected test suites will be executed in the following order:${line.separator}</echo>
- <echo file="${selected.suites.configuration}"
- append="true"
- message="test.suites.names.list=${test.suites.names.list}${line.separator}" />
-
- <echo file="${selected.suites.configuration}" append="true">
-# This order has been obtained on the base of the following
-# information about dependencies between test suites:${line.separator}</echo>
-
- <for list="${test.suites.names.list}" param="suite">
- <sequential>
- <echo file="${selected.suites.configuration}"
- append="true"
- message="@{suite}.parameters.depends=${@{suite}.parameters.depends}${line.separator}" />
- </sequential>
- </for>
+ <target name="setup" >
+ <!-- Currently does nothing. Will move suites' setup here -->
</target>
<!-- ==================================================================
Modified: harmony/enhanced/buildtest/trunk/infra/scripts/config.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/infra/scripts/config.xml?rev=642920&r1=642919&r2=642920&view=diff
==============================================================================
--- harmony/enhanced/buildtest/trunk/infra/scripts/config.xml (original)
+++ harmony/enhanced/buildtest/trunk/infra/scripts/config.xml Mon Mar 31 01:14:30 2008
@@ -18,7 +18,7 @@
<project name="config" default="generate-config" basedir=".">
<!-- temporary file to store intermediate results of iteration -->
- <property name="tmp.file" value="tmp.txt" />
+ <property name="tmp.file" location="${scripts.dir}/tmp.txt" />
<target name="generate-config">
@@ -73,6 +73,44 @@
<propertyset refid="global.build.parameters.id" />
</propertyset>
</ant>
+
+ <!-- fourth stage: extract depends properties
+ to a separate file - 'selected-suites.properties' -->
+
+ <!-- get all 'depends' suites as a list -->
+ <loadfile property="depends.suites" srcfile="${all.props}">
+ <filterchain>
+ <linecontainsregexp>
+ <regexp pattern="[^.]+\.parameters\.depends=" />
+ </linecontainsregexp>
+ <tokenfilter>
+ <linetokenizer />
+ <replaceregex pattern="[^.]+\.parameters\.depends=(.+)"
+ replace="\1," />
+ </tokenfilter>
+ <striplinebreaks />
+ </filterchain>
+ </loadfile>
+
+ <!-- check if the suites in the list were selected -->
+ <subant genericantfile="${scripts.dir}/config.xml"
+ target="-remove-if-not-selected"
+ inheritall="true"
+ inheritrefs="true">
+ <dirset dir="${adaptors.dir}" includes="${depends.suites}" />
+ </subant>
+
+ <!-- flash the list into the file -->
+ <echo message="" file="${selected.suites.configuration}" />
+ <subant genericantfile="${scripts.dir}/config.xml"
+ target="-flash-selected"
+ inheritall="false">
+ <dirset dir="${adaptors.dir}" includes="${test.suites}" />
+ <propertyset>
+ <propertyref name="selected.suites.configuration" />
+ <propertyref name="all.props" />
+ </propertyset>
+ </subant>
</target>
<!-- The target is workaround for properties cycle dependencies
@@ -273,5 +311,57 @@
</echo>
</sequential>
</macrodef>
-</project>
+ <target name="-remove-if-not-selected"
+ unless="${suite.name}.was.selected"
+ depends="-check-if-selected">
+
+ <!-- Stepan: I failed to develop one regexp. for all cases
+ so do the removal in two steps
+ If you know the better was please let me know
+ -->
+
+ <!-- remove dependency from a suite's list -->
+ <replaceregexp file="${all.props}"
+ match="([^.]\.parameters\.depends=.*),${suite.name}(.*)"
+ replace="\1\2"
+ flags="g" />
+ <replaceregexp file="${all.props}"
+ match="([^.]\.parameters\.depends=)${suite.name},?(.*)"
+ replace="\1\2"
+ flags="g" />
+ </target>
+
+ <target name="-check-if-selected">
+
+ <basename file="${basedir}" property="suite.name" />
+
+ <condition property="${suite.name}.was.selected">
+ <contains string="${test.suites}," substring="${suite.name}" />
+ </condition>
+ </target>
+
+ <target name="-flash-selected">
+
+ <basename file="${basedir}" property="suite.name" />
+ <property file="${all.props}" />
+
+ <set-value suite="${suite.name}" />
+
+ <echo message="${value}${line.separator}"
+ file="${selected.suites.configuration}"
+ append="true" />
+ </target>
+
+ <macrodef name="set-value">
+ <attribute name="suite" />
+ <sequential>
+ <condition property="value"
+ value="@{suite}.parameters.depends=${@{suite}.parameters.depends}"
+ else="@{suite}.parameters.depends=">
+ <isset property="@{suite}.parameters.depends" />
+ </condition>
+ </sequential>
+ </macrodef>
+
+</project>
Modified: harmony/enhanced/buildtest/trunk/infra/scripts/framework.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/infra/scripts/framework.properties?rev=642920&r1=642919&r2=642920&view=diff
==============================================================================
--- harmony/enhanced/buildtest/trunk/infra/scripts/framework.properties (original)
+++ harmony/enhanced/buildtest/trunk/infra/scripts/framework.properties Mon Mar 31 01:14:30 2008
@@ -3,7 +3,6 @@
required.parameters.location=${root.dir}/required-parameters.properties
backup.parameters.location=${root.dir}/backup-parameters.properties
-selected.suites.configuration=${root.dir}/selected-suites.properties
execution.timeout=10000
@@ -26,3 +25,4 @@
config.dir=${build.dir}/config
external.resources.location=${config.dir}/resources.location
+selected.suites.configuration=${config.dir}/selected-suites.props
Modified: harmony/enhanced/buildtest/trunk/infra/scripts/framework.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/infra/scripts/framework.xml?rev=642920&r1=642919&r2=642920&view=diff
==============================================================================
--- harmony/enhanced/buildtest/trunk/infra/scripts/framework.xml (original)
+++ harmony/enhanced/buildtest/trunk/infra/scripts/framework.xml Mon Mar 31 01:14:30 2008
@@ -152,176 +152,7 @@
</target>
<target name="load-required-parameters" depends="load-parameters">
- <touch file="${required.parameters.location}"/>
- <!-- load preset required parameters from the file -->
- <loadproperties srcfile="${required.parameters.location}">
- <filterchain>
- <striplinecomments>
- <comment value="#"/>
- </striplinecomments>
- <deletecharacters chars="\t"/>
- <trim/>
- <ignoreblank/>
- <replaceregex pattern="\\" replace="\\\\\\\\" flags="g"/>
- <prefixlines prefix="tmp.preset.required."/>
- </filterchain>
- </loadproperties>
- <!-- echoproperties>
- <propertyset>
- <propertyref prefix="tmp.preset.required."/>
- </propertyset>
- </echoproperties -->
- <property name="tmp.preset.params.list" value=""/>
- <propertyselector
- property="tmp.preset.params.list"
- override="true"
- delimiter=","
- match="^tmp\.preset\.required\.(.*)$"
- select="\1"
- distinct="true"
- />
- <log message="Preset required parameters: ${tmp.preset.params.list}"/>
- <!-- Set up Required Parameter values and remove possible trash
- properties got from the file -->
- <for list="${tmp.preset.params.list}" param="preset">
- <sequential>
- <var name="tmp.param.key" unset="true"/>
- <property name="tmp.param.key" value=""/>
- <!-- bring the parameter key to the extended form -->
- <propertyregex
- property="tmp.param.key"
- input="@{preset}"
- regexp="^([^.][^.]*)\.(.*)$"
- replace="\1.parameters.required.\2"
- override="true"
- />
- <var name="tmp.param.value"
- value="${tmp.preset.required.@{preset}}"/>
- <if>
- <not><isset property="${tmp.param.key}.description"/></not>
- <then>
- <echo>
---------
-WARNING: Property
--------- @{preset}=${tmp.param.value}
-specified in
- ${required.parameters.location}
-file was not described as 'required' for any of selected test suites:
- ${test.suites.names.list}
-It is removed from required properties settings file
-and it's backed up into
- ${backup.parameters.location}
-file.
- </echo>
- <echo file="${backup.parameters.location}" append="true"
- message="@{preset}=${tmp.param.value}${line.separator}"/>
- </then>
- <else>
- <if>
- <!-- check that the value is set -->
- <length string="${tmp.param.value}"
- when="greater" length="0"/>
- <then>
- <!-- value is set, so use it -->
- <var name="${tmp.param.key}"
- value="${tmp.param.value}"/>
- </then>
- </if>
- </else>
- </if>
- </sequential>
- </for>
- </target>
-
- <!-- Updates the file containing all of the required properties -->
- <target name="save-required-parameters">
-
- <echo file="${required.parameters.location}">#
-# Required Parameters Settings File
-#
-# Please, provide the values for all of the
-# required unset parameters described here.
-#
-# This file was generated on the base of parameters
-# described as 'required' by selected test suites (${test.suites.names.list})
-#
-# The other configuration properties (not described as 'required'
-# by any of the selected test suites) should not be added to this file.
-# They should be specified in
-# ${local.configuration.file}
-# file.
-#
-# If there is a property not considered as 'required' it will be
-# removed from this file and backed up into
-# ${backup.parameters.location}
-# file.
-#
-
-</echo>
- <for list="${test.suites.names.list}" param="suite">
- <sequential>
- <log message="Update required parameters for '@{suite}'"/>
- <var name="tmp.required.parameters.list" value=""/>
- <propertyselector
- property="tmp.required.parameters.list"
- override="true"
- delimiter=","
- match="^(@{suite}\.parameters\.required\..*?)(?:\.description)?$"
- select="\1"
- distinct="true"
- />
- <for list="${tmp.required.parameters.list}" param="required" trim="yes">
- <sequential>
- <var name="tmp.short.param.key" value=""/>
- <!-- bring the parameter key to short form -->
- <propertyregex
- property="tmp.short.param.key"
- input="@{required}"
- regexp="^@{suite}\.parameters\.required\.(.*?)$"
- replace="@{suite}.\1"
- override="true"
- />
- <log message="Processing of @{required} = ${@{required}}"/>
- <!-- write description -->
- <echo file="${required.parameters.location}" append="true"
- message="# ${@{required}.description}${line.separator}"/>
- <if>
- <or><not><isset property="@{required}"/></not>
- <equals arg1="${@{required}}" arg2="" trim="true"/>
- <contains string="${@{required}}"
- substring=".parameters.shared."/>
- </or>
- <then>
- <echo file="${required.parameters.location}" append="true"
- message="${tmp.short.param.key}=${line.separator}"/>
- <property name="tmp.unset.required.parameter.exists" value="true"/>
- <echo>
---------
-WARNING: The value of the Required Parameter
--------- ${tmp.short.param.key}
- was not set!
- Please, update Required Parameters Settings File:
- ${required.parameters.location}
- </echo>
- </then>
- <else>
- <echo file="${required.parameters.location}" append="true"
- message="${tmp.short.param.key}=${@{required}}${line.separator}"/>
- </else>
- </if>
- </sequential>
- </for>
- </sequential>
- </for>
-
- <fail if="tmp.unset.required.parameter.exists">...
-------
-ERROR: Some of the Required Parameters for selected Test Suites:
------- ${test.suites.names.list}
- were not set.
- Please, update Requirted Parameters Settings File:
- ${required.parameters.location}
- </fail>
+ <property file="${required.parameters.location}"/>
</target>
<target name="define-suites-ids">
@@ -361,7 +192,7 @@
<!-- do test suites initialization work before adaptors execution -->
<target name="init-suites"
depends="init-framework,
- load-required-parameters, save-required-parameters,
+ load-required-parameters,
define-suites-ids, -delete-temporal-properties"/>
<!-- Sets up the suites -->