Implemented package tests
authorMaciej Seroka <maciejs@symbian.org>
Thu, 12 Aug 2010 12:44:52 +0100
changeset 1208 86025b85795b
parent 1206 4518bca1baf0
child 1209 10d9bc494ce9
Implemented package tests
common/build.postbuild.xml
common/common_props.ant.xml
sf-package/build.xml
sf-package/package_props.ant.xml
--- a/common/build.postbuild.xml	Tue Aug 10 18:11:17 2010 +0100
+++ b/common/build.postbuild.xml	Thu Aug 12 12:44:52 2010 +0100
@@ -76,6 +76,13 @@
             </then>
         </if>
 
+        <!-- Launch package tests -->
+        <if><istrue value="${sf.spec.package.test.enable}"/>
+            <then>
+                <runtarget target="sf-test-package"/>
+            </then>
+        </if>
+
         <!-- copy log files linked to the generation of roms for REE -->
         <runtarget target="sf-copy-rom-logs"/>
 
--- a/common/common_props.ant.xml	Tue Aug 10 18:11:17 2010 +0100
+++ b/common/common_props.ant.xml	Thu Aug 12 12:44:52 2010 +0100
@@ -132,6 +132,9 @@
 	
 	<!-- Smoketest properties -->
 	<property name="sf.spec.smoketest.enable" value="true"/> <!-- This disables publishing Smoke Test Report -->
+
+    <!-- Package tests properties -->
+    <property name="sf.spec.package.test.enable" value="false"/> <!-- This disables package tests -->
 </project>
 
 
--- a/sf-package/build.xml	Tue Aug 10 18:11:17 2010 +0100
+++ b/sf-package/build.xml	Thu Aug 12 12:44:52 2010 +0100
@@ -72,14 +72,43 @@
       </antcall>    
       </sequential>
     </for>
-    
+    <!-- build test code -->	
+    <if><istrue value="${sf.spec.package.test.enable}"/>
+        <then>
+            <for list="${sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
+              <sequential>
+      
+              <hlm:sbsinput id="sf.build">
+                <sbsOptions>
+                    <arg line="-c @{item.sbs.splitconfig}.test"/>
+                    <arg line="-k" />
+                    <arg line="-j ${sf.spec.sbs.numberofjobs}"/>
+                    <arg line="-t ${sf.spec.sbs.retry.limit}"/>
+                    <arg line="${sf.spec.sbs.options}"/>
+                    <arg name="--filters" value="&quot;${sf.spec.sbs.filter.list}&quot;"/>
+                    <arg name="--logfile" value="${build.log.dir}/${build.id}_@{item.sbs.splitconfig}_compile.log" />
+                    <arg name="--makefile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_Makefile" />
+                </sbsOptions>
+              </hlm:sbsinput>
+      
+              <echo message="INFO [Iterative compile] Building target: @{item.sbs.splitconfig}"/>
+              <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+                  <param name="build.system" value="${sf.spec.build.system}" />
+                  <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+                  <param name="sbs.inputs.list" value="sf.build"/>
+                  <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+              </antcall>    
+              </sequential>
+           </for>
+         </then>
+    </if>
     
     <!-- CHECK -->
     <exec executable="cmd" dir="${build.drive}/" output="${build.drive}/output\logs\build_check_compile.log">
       <arg value="/c sbs.bat -s ${build.drive}/output\build\canonical_system_definition_SF.xml -k -c tools2_rel -c winscw -c armv5 -j 32 --check -m ${build.drive}/output\logs\build_check_Makefile"/>
       <!-- argument of -j option can be parameterized with: ${number.of.threads} -->
     </exec>
-    
+   
   </target>
         
         
@@ -127,6 +156,49 @@
     </exec>
     
   </target>
+        
+        
+  <target name="sf-test-package">
+
+    <echo message="INFO Preparing package"/>
+    <exec executable="perl" dir="${sf.common.config.dir}/tools/ats/" failonerror="false" output="${build.log.dir}/ATS_${build.id}_prep_package.log">
+        <arg value="hlm_prep_package.pl"/>
+        <arg value="--csv-file=${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
+        <arg value="--bld-drive=${build.drive}"/>
+    </exec>
+  
+    <echo message="INFO Building package test drop(s)"/>
+<!--    <runtarget target="ats-test"/> --> <!-- Supported from Helium 9.0.5 onwards -->
+    <echo message="INFO Skipped - Helium 9.0.5+ required"/>
+	
+    <for param="file">
+        <path>
+            <fileset dir="${build.drive}/output/ats" includes="*.zip"/>
+        </path>
+        <sequential>
+            <propertyregex override="yes" property="program"  input="@{file}" regexp="([^\\/\/]*)$" select="\1"/>  						
+            <echo message="INFO Updating package test drop with test info"/>
+            <echo message="************ Test drop name:  ${program} " />
+            <exec executable="perl" dir="${sf.common.config.dir}/tools/ats/" failonerror="false" append="true" output="${build.log.dir}/ATS_${build.id}_packagetest.log">
+                <arg value="ats_specialise_test_drop.pl"/>
+                <arg value="--test-drop-name=${env.COMPUTERNAME}-packagetest-${build.id}_${program}"/> 
+                <arg value="--host-name=${env.COMPUTERNAME}.ad-sfpd.intra"/>
+                <arg value="--src=${build.drive}/output/ats/${program}"/>
+                <arg value="--dest=${sf.spec.test.package.location}\${env.COMPUTERNAME}-packagetest-${build.id}_${program}" />
+                <arg value="--publish=${publish.dir}\ats_reports\${program}"/>
+                <arg value="--ats-version=ats4"/> <!-- Hard-coded ats-version as Test Drop Generator for WINSCW supports only ATS4 -->
+            </exec>
+            <!-- Now ready to send to ATS -->  
+            <echo message="Sending test drop :  ${program} ............" />
+            <antcall target="sf-send-testpkg" inheritAll="false">
+                <param name="sf.spec.test.package.name" value="${env.COMPUTERNAME}-packagetest-${build.id}_${program}"/>
+            </antcall>
+        </sequential>
+    </for>
+
+  </target>
+
+  <target name="ats-emulator-zip"/> <!-- This is to override exisiting Helium target called from ats-test -->
   
 </project>
 
--- a/sf-package/package_props.ant.xml	Tue Aug 10 18:11:17 2010 +0100
+++ b/sf-package/package_props.ant.xml	Thu Aug 12 12:44:52 2010 +0100
@@ -34,5 +34,17 @@
   <!-- Enable qmake processing for any units with proFile attributes -->
   <property name="qmake.enabled" value="true"/>
 
+  <!-- Properties used to generate ATS test drop -->
+  <property name="enabled.ats" value="true"/>
+  <property name="ats4.enabled" value="true"/>
+  <property name="ats.emulator.enable" value="true"/>
+  <property name="ats.product.name" value="MY_AGENT_NAME"/> <!-- Agent name will be replaced later while specialising test drop -->
+  <property name="ats.email.list" value="user@symbian.org"/>
+  <property name="ats.flash.images" value=""/> <!-- This should be changed in order to generate a test drop for armv5 devices -->
+  <property name="ats.target.platform" value="winscw udeb"/>
+  <property name="skip.ats.sending" value="true"/> <!-- Test drop will be sent using a separate target -->
+  <property name="ats.testrun.name" value="Package tests"/>
+  <property name="ats.test.timeout" value="3600"/>
+  
 </project>