buildframework/helium/sf/java/metadata/tests/antunit/test_sbs_input.ant.xml
changeset 628 7c4a911dc066
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
       
     1 <!-- 
       
     2 ============================================================================ 
       
     3 Name        : test_sbs_input.ant.xml 
       
     4 Part of     : Helium AntLib
       
     5 
       
     6 Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     7 All rights reserved.
       
     8 This component and the accompanying materials are made available
       
     9 under the terms of the License "Eclipse Public License v1.0"
       
    10 which accompanies this distribution, and is available
       
    11 at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
    12 
       
    13 Initial Contributors:
       
    14 Nokia Corporation - initial contribution.
       
    15 
       
    16 Contributors:
       
    17 
       
    18 Description:
       
    19 
       
    20 ============================================================================
       
    21 -->
       
    22 <project name="test-sbs-input" xmlns:au="antlib:org.apache.ant.antunit" xmlns:hlm="http://www.nokia.com/helium">
       
    23     <description>Helium metadata SBS input unittests.</description>
       
    24     
       
    25     <dirname property="project.dir" file="${ant.file.test-metadata-regex}" />
       
    26     <taskdef resource="com/nokia/helium/metadata/ant/antlib.xml" uri="http://www.nokia.com/helium" />
       
    27     <taskdef name="fmpp" classname="fmpp.tools.AntTask" onerror="report"/>
       
    28     
       
    29     <target name="setUp">
       
    30         <echo>---=====================================---</echo>
       
    31         <mkdir dir="${test.temp.dir}" />
       
    32         <delete dir="${test.temp.dir}" />
       
    33         <mkdir dir="${test.temp.dir}" />
       
    34     </target>
       
    35     
       
    36     <target name="tearDown">
       
    37         <delete dir="${test.temp.dir}" />
       
    38         <echo>---=====================================---</echo>
       
    39     </target>
       
    40 
       
    41     <hlm:metadatafilterset id="error.filterset">
       
    42         <hlm:metadatafilter severity="error" regex="^ERROR: .*" description="Simple error pattern"/>
       
    43         <hlm:metadatafilter severity="warning" regex="^WARNING: .*" description="Simple warning pattern"/>
       
    44     </hlm:metadatafilterset>
       
    45 
       
    46     
       
    47 
       
    48     <!-- Test categorization for sbs scanlog
       
    49     -->
       
    50     <target name="test-categorization">
       
    51         <echo message="categorization validation" />
       
    52         <hlm:metadatarecord database="${test.temp.dir}/categorization_db">
       
    53             <hlm:sbsmetadatainput>
       
    54                 <fileset dir="${project.dir}/../data/sbs">
       
    55                     <include  name="categorization.log"/>
       
    56                 </fileset>
       
    57                 <metadatafilterset refid="error.filterset" />
       
    58             </hlm:sbsmetadatainput>
       
    59         </hlm:metadatarecord>
       
    60         <fmpp sourceFile="${project.dir}/../data/sbs/parsing_result.ini.ftl"
       
    61                      outputfile="${test.temp.dir}/categorization_db_result.ini">
       
    62             <data expandProperties="yes">
       
    63                 dbPath: ${test.temp.dir}/categorization_db
       
    64                 ant: antProperties()
       
    65             </data>
       
    66         </fmpp>
       
    67         <property file="${test.temp.dir}/categorization_db_result.ini" />
       
    68         <echo>number.of.logs: ${number.of.logs}</echo>
       
    69         <echo>number.of.execution.times: ${number.of.execution.times}</echo>
       
    70         <echo>number.of.components: ${number.of.components}</echo>
       
    71         <echo>execution.time.0: ${execution.time.0}</echo>
       
    72         <echo>number.of.component.times: ${number.of.component.times}</echo>
       
    73         <au:assertTrue message="Invalid number of logs">
       
    74             <equals arg1="${number.of.logs}" arg2="1" />
       
    75         </au:assertTrue>
       
    76         <au:assertTrue message="Invalid number of execution time">
       
    77             <equals arg1="${number.of.execution.times}" arg2="1" />
       
    78         </au:assertTrue>
       
    79         <au:assertTrue message="Invalid number of logs">
       
    80             <equals arg1="${execution.time.0}" arg2="226" />
       
    81         </au:assertTrue>
       
    82         <au:assertTrue message="Invalid number of components">
       
    83             <equals arg1="${number.of.components}" arg2="2" />
       
    84         </au:assertTrue>
       
    85         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/categorization.log" database="${test.temp.dir}/categorization_db" property="cleanlog_errors"/>
       
    86         <echo>cleanlog_errors: ${cleanlog_errors}</echo>
       
    87         <au:assertTrue>
       
    88             <equals arg1="${cleanlog_errors}" arg2="2"/>
       
    89         </au:assertTrue>
       
    90         <au:assertTrue message="Invalid number of component times">
       
    91             <equals arg1="${number.of.component.times}" arg2="2" />
       
    92         </au:assertTrue>
       
    93     </target>
       
    94        
       
    95     <target name="test-categorization-component-check">
       
    96         <echo message="component error check for categorization" />
       
    97         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
    98             <hlm:sbsmetadatainput>
       
    99                 <fileset dir="${project.dir}/../data/sbs">
       
   100                     <include  name="categorization_compile.log"/>
       
   101                 </fileset>
       
   102                 <metadatafilterset refid="error.filterset" />
       
   103             </hlm:sbsmetadatainput>
       
   104         </hlm:metadatarecord>
       
   105         <fmpp sourceFile="${project.dir}/../data/templates/component_categorization.txt.ftl"
       
   106                      outputfile="${test.temp.dir}/faults.txt">
       
   107             <data expandProperties="yes">
       
   108                 dbPath: ${test.temp.dir}/metadata_db
       
   109                 ant: antProperties()
       
   110             </data>
       
   111         </fmpp>
       
   112         <loadfile property="componentlogEntry"
       
   113               srcFile="${test.temp.dir}/faults.txt"/>
       
   114         <au:assertMatches string="${componentlogEntry}" pattern="sf/app/organizer/group:error:2" 
       
   115                      casesensitive="false"/>
       
   116     </target>
       
   117 
       
   118     <target name="test-categorization-component-check-after">
       
   119         <echo message="component error check for categorization" />
       
   120         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   121             <hlm:sbsmetadatainput>
       
   122                 <fileset dir="${project.dir}/../data/sbs">
       
   123                     <include  name="categorization_error_after_compile.log"/>
       
   124                 </fileset>
       
   125                 <metadatafilterset refid="error.filterset" />
       
   126             </hlm:sbsmetadatainput>
       
   127         </hlm:metadatarecord>
       
   128         <fmpp sourceFile="${project.dir}/../data/templates/component_categorization.txt.ftl"
       
   129                      outputfile="${test.temp.dir}/faults.txt">
       
   130             <data expandProperties="yes">
       
   131                 dbPath: ${test.temp.dir}/metadata_db
       
   132                 ant: antProperties()
       
   133             </data>
       
   134         </fmpp>
       
   135         <loadfile property="componentlogEntry"
       
   136               srcFile="${test.temp.dir}/faults.txt"/>
       
   137         <au:assertMatches string="${componentlogEntry}" pattern="sf/app/organizer/group:error:2" 
       
   138                          casesensitive="false"/>
       
   139     </target>
       
   140     
       
   141     
       
   142     <target name="test-categorization-nocleanlog-failed-empty-recipe">
       
   143         <echo message="test-categorization-nocleanlog-failed-empty-recipe" />
       
   144         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   145             <hlm:sbsmetadatainput>
       
   146                 <fileset dir="${project.dir}/../data/sbs">
       
   147                     <include  name="categorization_failed_empty_recipe.log"/>
       
   148                 </fileset>
       
   149                 <metadatafilterset refid="error.filterset" />
       
   150             </hlm:sbsmetadatainput>
       
   151         </hlm:metadatarecord>
       
   152         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/categorization_failed_empty_recipe.log" database="${test.temp.dir}/metadata_db" property="empty_nocleanlog_errors"/>
       
   153         <au:assertTrue>
       
   154             <equals arg1="${empty_nocleanlog_errors}" arg2="2"/>
       
   155         </au:assertTrue>
       
   156     </target>
       
   157 
       
   158     <target name="test-categorization-nocleanlog-failed-error-in-recipe">
       
   159         <echo message="test-categorization-nocleanlog-failed-error-in-recipe" />
       
   160         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   161             <hlm:sbsmetadatainput>
       
   162                 <fileset dir="${project.dir}/../data/sbs">
       
   163                     <include  name="categorization_failed_error_in_recipe.log"/>
       
   164                 </fileset>
       
   165                 <metadatafilterset refid="error.filterset" />
       
   166             </hlm:sbsmetadatainput>
       
   167         </hlm:metadatarecord>
       
   168         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/categorization_failed_error_in_recipe.log" 
       
   169             database="${test.temp.dir}/metadata_db" property="empty_nocleanlog_errors"/>
       
   170         <echo>empty_nocleanlog_errors: ${empty_nocleanlog_errors}</echo>
       
   171         <au:assertTrue>
       
   172             <equals arg1="${empty_nocleanlog_errors}" arg2="2"/>
       
   173         </au:assertTrue>
       
   174     </target>
       
   175 
       
   176 
       
   177     <!-- To verify some lengthy text for recipe tag from 
       
   178     sbs metadata input.
       
   179     -->
       
   180     <target name="test-recipe-lengthy-text">
       
   181         <echo message="test-recipe-lengthy-text" />
       
   182         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   183             <hlm:sbsmetadatainput>
       
   184                 <fileset dir="${project.dir}/../data/sbs">
       
   185                     <include  name="receipe_lengthy_warn.log"/>
       
   186                 </fileset>
       
   187                 <metadatafilterset refid="error.filterset" />
       
   188             </hlm:sbsmetadatainput>
       
   189         </hlm:metadatarecord>
       
   190         <au:assertTrue>
       
   191             <available type="dir" file="${test.temp.dir}/metadata_db" />
       
   192         </au:assertTrue>
       
   193         <hlm:metadataCountSeverity severity="warning" log="${project.dir}/../data/sbs/receipe_lengthy_warn.log" 
       
   194             database="${test.temp.dir}/metadata_db" property="warnings"/>
       
   195         <echo>warnings: ${warnings}</echo>
       
   196         <au:assertTrue>
       
   197             <equals arg1="${warnings}" arg2="1"/>
       
   198         </au:assertTrue>
       
   199     </target>
       
   200 
       
   201     <!-- To verify some lengthy member are not failing the recording
       
   202     -->
       
   203     <target name="test-recipe-lengthy-member">
       
   204         <echo message="test-recipe-lengthy-member" />
       
   205         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   206             <hlm:sbsmetadatainput>
       
   207                 <fileset dir="${project.dir}/../data/sbs">
       
   208                     <include  name="receipe_lengthy_whatlog.log"/>
       
   209                 </fileset>
       
   210                 <metadatafilterset refid="error.filterset" />
       
   211             </hlm:sbsmetadatainput>
       
   212         </hlm:metadatarecord>
       
   213         <au:assertTrue>
       
   214             <available type="dir" file="${test.temp.dir}/metadata_db" />
       
   215         </au:assertTrue>
       
   216     </target>
       
   217 
       
   218     <target name="test-metadatacount-no-error-with-missing-files-path-with-backslashes">
       
   219         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   220             <hlm:sbsmetadatainput>
       
   221                 <fileset dir="${project.dir}/../data/sbs">
       
   222                     <include  name="metadatacount_missing_files.log"/>
       
   223                 </fileset>
       
   224                 <metadatafilterset>
       
   225                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   226                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   227                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   228                 </metadatafilterset>
       
   229             </hlm:sbsmetadatainput>
       
   230         </hlm:metadatarecord>
       
   231         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/metadatacount_missing_files.log" database="${test.temp.dir}/metadata_db" property="errors"/>
       
   232         <echo>errors: ${errors}</echo>
       
   233         <au:assertTrue message="We must have 5 missing files counted as error.">
       
   234             <equals arg1="${errors}" arg2="5"/>
       
   235         </au:assertTrue>
       
   236     </target>
       
   237     
       
   238     <target name="test-metadatacount-no-error-with-missing-files">
       
   239         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   240             <hlm:sbsmetadatainput >
       
   241                 <fileset dir="${project.dir}/../data/sbs">
       
   242                     <include  name="metadatacount_missing_files.log"/>
       
   243                 </fileset>
       
   244                 <metadatafilterset>
       
   245                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   246                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   247                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   248                 </metadatafilterset>
       
   249             </hlm:sbsmetadatainput>
       
   250         </hlm:metadatarecord>
       
   251         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/metadatacount_missing_files.log" database="${test.temp.dir}/metadata_db" property="errors"/>
       
   252         <echo>errors: ${errors}</echo>
       
   253         <au:assertTrue message="We must have 5 missing files counted as error.">
       
   254             <equals arg1="${errors}" arg2="5"/>
       
   255         </au:assertTrue>
       
   256     </target>
       
   257     
       
   258     <target name="test-metadatacount-error-with-missing-files">
       
   259     	<echo>test-metadatacount-error-with-missing-files</echo>
       
   260         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   261             <hlm:sbsmetadatainput>
       
   262                 <fileset dir="${project.dir}/../data/sbs">
       
   263                     <include name="metadatacount_error_and_missing_files.log"/>
       
   264                 </fileset>
       
   265                 <metadatafilterset>
       
   266                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   267                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   268                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   269                 </metadatafilterset>
       
   270             </hlm:sbsmetadatainput>
       
   271         </hlm:metadatarecord>
       
   272         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/metadatacount_error_and_missing_files.log" database="${test.temp.dir}/metadata_db" property="errors"/>
       
   273         <echo>error: ${errors}</echo>
       
   274     	<au:assertTrue message="We must have 6 missing files counted as error.">
       
   275             <equals arg1="${errors}" arg2="6"/>
       
   276         </au:assertTrue>
       
   277     </target>        
       
   278 
       
   279     <target name="test-count-error-without-missing-files">
       
   280         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   281             <hlm:sbsmetadatainput checkMissing="false">
       
   282                 <fileset dir="${project.dir}/../data/sbs">
       
   283                     <include  name="metadatacount_error_and_missing_files.log"/>
       
   284                 </fileset>
       
   285                 <metadatafilterset>
       
   286                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   287                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   288                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   289                 </metadatafilterset>
       
   290             </hlm:sbsmetadatainput>
       
   291         </hlm:metadatarecord>
       
   292         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/metadatacount_error_and_missing_files.log"
       
   293             database="${test.temp.dir}/metadata_db" property="errors"
       
   294             />
       
   295         <au:assertTrue message="We must have 1 missing files counted as error.">
       
   296             <equals arg1="${errors}" arg2="1"/>
       
   297         </au:assertTrue>
       
   298     </target>
       
   299 
       
   300     <target name="test-whatlog-parsing">
       
   301         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   302             <hlm:sbsmetadatainput>
       
   303                 <fileset dir="${project.dir}/../data/sbs">
       
   304                     <include name="build_whatlog.log"/>
       
   305                 </fileset>
       
   306                 <metadatafilterset>
       
   307                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   308                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   309                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   310                 </metadatafilterset>
       
   311             </hlm:sbsmetadatainput>
       
   312         </hlm:metadatarecord>
       
   313         <fmpp sourceFile="${project.dir}/../data/sbs/whatlog_result.ini.ftl"
       
   314                      outputfile="${test.temp.dir}/whatlog_result.ini">
       
   315             <data expandProperties="yes">
       
   316                 dbPath: ${test.temp.dir}/metadata_db
       
   317                 ant: antProperties()
       
   318             </data>
       
   319         </fmpp>
       
   320         <property file="${test.temp.dir}/whatlog_result.ini" />
       
   321         <au:assertTrue message="Invalid number of logs">
       
   322             <equals arg1="${number.of.logs}" arg2="1" />
       
   323         </au:assertTrue>
       
   324         <au:assertTrue message="Invalid number of whatlog entries">
       
   325             <equals arg1="${number.of.whatlog.entries}" arg2="5" />
       
   326         </au:assertTrue>
       
   327     </target>
       
   328 
       
   329     <target name="test-count-error-with-invalid-xml-fail-on-invalid-xml-false">
       
   330         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   331             <hlm:sbsmetadatainput checkMissing="false" failOnInvalidXml="false">
       
   332                 <fileset dir="${project.dir}/../data/sbs">
       
   333                     <include  name="invalid_xml_log_format.log"/>
       
   334                 </fileset>
       
   335                 <metadatafilterset>
       
   336                     <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   337                     <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   338                     <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   339                 </metadatafilterset>
       
   340             </hlm:sbsmetadatainput>
       
   341         </hlm:metadatarecord>
       
   342         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/invalid_xml_log_format.log"
       
   343             database="${test.temp.dir}/metadata_db" property="errors"
       
   344             />
       
   345         <au:assertTrue message="We must have 1 error in the log because of invalid xml format.">
       
   346             <equals arg1="${errors}" arg2="1"/>
       
   347         </au:assertTrue>
       
   348     </target>
       
   349 
       
   350     <target name="test-count-error-with-invalid-xml-fail-on-invalid-xml-true">
       
   351         <au:expectfailure expectedMessage="The element type &quot;error&quot; must be terminated by the matching end-tag &quot;&lt;/error&gt;&quot;">
       
   352             <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   353                 <hlm:sbsmetadatainput>
       
   354                     <fileset dir="${project.dir}/../data/sbs">
       
   355                         <include  name="invalid_xml_log_format.log"/>
       
   356                     </fileset>
       
   357                     <metadatafilterset>
       
   358                         <metadatafilter severity="INFO" regex="^INFO:" description="info" />
       
   359                         <metadatafilter severity="ERROR" regex="^ERROR:" description="error" />
       
   360                         <metadatafilter severity="WARNING" regex=".*warning C4503:.*" description="warning" />
       
   361                     </metadatafilterset>
       
   362                 </hlm:sbsmetadatainput>
       
   363             </hlm:metadatarecord>
       
   364         </au:expectfailure>
       
   365         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/invalid_xml_log_format.log"
       
   366             database="${test.temp.dir}/metadata_db" property="errors"
       
   367             />
       
   368         <au:assertTrue message="We must have 1 error in the log because of invalid xml format.">
       
   369             <equals arg1="${errors}" arg2="1"/>
       
   370         </au:assertTrue>
       
   371     </target>
       
   372     
       
   373     <target name="test-emake-errors-in-sbs-compile">
       
   374         <hlm:metadatarecord  database="${test.temp.dir}/metadata_db">
       
   375             <hlm:sbsmetadatainput>
       
   376                 <fileset dir="${project.dir}/../data/sbs">
       
   377                     <include  name="sbs_compile_emake_errors.log"/>
       
   378                 </fileset>
       
   379                 <metadatafilterset>
       
   380                     <metadatafilter priority="error" regex="^ERROR\s+EC\d+:.*$" description="To capture emake errors" />
       
   381                 </metadatafilterset>
       
   382             </hlm:sbsmetadatainput>
       
   383         </hlm:metadatarecord>
       
   384         <hlm:metadataCountSeverity severity="error" log="${project.dir}/../data/sbs/sbs_compile_emake_errors.log"
       
   385             database="${test.temp.dir}/metadata_db" property="errors"/>
       
   386         <au:assertTrue message="We must have 5 emake errors in the log.">
       
   387             <equals arg1="${errors}" arg2="5"/>
       
   388         </au:assertTrue>
       
   389     </target>
       
   390 	
       
   391 	
       
   392     <target name="test-unit-linkage">
       
   393     	<property name="epocroot" location="../" />
       
   394     	<copy file="${project.dir}/../data/sbs/unit_categorization_compile.log" tofile="${test.temp.dir}/unit_categorization_compile.log">
       
   395     	    <filterchain>
       
   396     		    <expandproperties/>
       
   397     	    </filterchain>
       
   398     	</copy>
       
   399         <hlm:metadatarecord  database="${test.temp.dir}/metadata_db">
       
   400             <hlm:sysdefmetadatainput file="../data/sbs/sysdef3.xml" epocroot="${epocroot}" />
       
   401             <hlm:sbsmetadatainput epocroot="../">
       
   402                 <fileset file="${test.temp.dir}/unit_categorization_compile.log" />
       
   403                 <metadatafilterset>
       
   404                     <metadatafilter priority="error" regex="^ERROR:.*" description="To capture emake errors" />
       
   405                 </metadatafilterset>
       
   406             </hlm:sbsmetadatainput>
       
   407         </hlm:metadatarecord>
       
   408         <fmpp sourceFile="../data/sbs/sysdef_data.ini.ftl"
       
   409                      outputfile="${test.temp.dir}/sysdef_data.ini">
       
   410             <data expandProperties="yes">
       
   411                 dbPath: ${test.temp.dir}/metadata_db
       
   412                 ant: antProperties()
       
   413             </data>
       
   414         </fmpp>
       
   415         <property file="${test.temp.dir}/sysdef_data.ini" />
       
   416         <echo>component.count: ${component.count}</echo>
       
   417         <echo>component.0.unit.id: ${component.0.unit.id}</echo>
       
   418         <echo>component.0.unit.location: ${component.0.unit.location}</echo>
       
   419         <echo>component.1.unit.id: ${component.1.unit.id}</echo>
       
   420         <echo>component.1.unit.location: ${component.1.unit.location}</echo>
       
   421         <au:assertTrue message="Check the first component do not links to any unit (uncategorized)">
       
   422             <equals arg1="${component.0.unit.id}" arg2="0" />
       
   423         </au:assertTrue>
       
   424         <au:assertTrue message="Check the first component do not links to any unit (uncategorized)">
       
   425             <equals arg1="${component.0.unit.location}" arg2="" />
       
   426         </au:assertTrue>
       
   427         <au:assertTrue message="Check the second component links to a unit">
       
   428             <equals arg1="${component.1.unit.location}" arg2="sf/mw/helloworldapi/group" />
       
   429         </au:assertTrue>
       
   430     </target>
       
   431     
       
   432 </project>