buildframework/helium/sf/java/metadata/tests/antunit/test_metadata.ant.xml
changeset 628 7c4a911dc066
parent 588 c7c26511138f
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
    21 ============================================================================
    21 ============================================================================
    22 -->
    22 -->
    23 <project name="test-metadata" xmlns:au="antlib:org.apache.ant.antunit" xmlns:hlm="http://www.nokia.com/helium">
    23 <project name="test-metadata" xmlns:au="antlib:org.apache.ant.antunit" xmlns:hlm="http://www.nokia.com/helium">
    24     <description>Helium antlib metadata tests.</description>
    24     <description>Helium antlib metadata tests.</description>
    25 
    25 
       
    26     <dirname property="project.dir" file="${ant.file.test-metadata}" />
    26     <taskdef resource="com/nokia/helium/metadata/ant/antlib.xml" uri="http://www.nokia.com/helium" />
    27     <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     <taskdef name="fmpp" classname="fmpp.tools.AntTask" onerror="report"/>
    28 
    29     
    29     <target name="check-metadata">
    30     <target name="setUp">
    30         <hlm:metadatarecord srcfile="${basedir}\data\gensis.txt" database="${basedir}\metadata_db">
    31         <echo>---=====================================---</echo>
    31             <fileset dir="data" includes="gensis.txt"/>
    32         <mkdir dir="${test.temp.dir}" />
    32             <hlm:textlogparser>
    33         <delete dir="${test.temp.dir}" />
    33                 <!-- Single set defined by csv file 
    34         <mkdir dir="${test.temp.dir}" />
    34                 <hlm:metadatafilterset filterFile="${basedir}\data\common.csv"/>-->
    35     </target>
    35                 <!-- Set defined by nested single filter and another nested set -->
    36     
    36                 <hlm:metadatafilterset>
    37     <target name="tearDown">
    37                     <hlm:metadatafilter priority="error" regex=".*Warning: Could not find file.*" description="Test pattern for missing file."/>
    38         <delete dir="${test.temp.dir}" />
    38                     <!--<hlm:metadatafilterset>
    39         <echo>---=====================================---</echo>
    39                         <hlm:metadatafilter priority="warning" regex="File not found" description="Test pattern for missing file."/>
       
    40                     </hlm:metadatafilterset>-->
       
    41                 </hlm:metadatafilterset>
       
    42             </hlm:textlogparser>
       
    43         </hlm:metadatarecord>
       
    44         <!--<au:assertLogContains text="Successfully executed codescanner"/>
       
    45         <au:assertLogContains text="Output format: xml,html"/>
       
    46         <au:assertFileExists file="${codescanner.output.dir}/problemIndex.xml"/>-->
       
    47     </target>
       
    48     
       
    49     
       
    50     <target name="render-scanlog">
       
    51         <property name="build.logs.dir" value="${bmd.test.project.dir}/test_bmd" />
       
    52         <fmpp sourceFile="${basedir}/../src/templates/readdata.xml.ftl"
       
    53                       outputFile="${basedir}/readdata.xml">
       
    54             <freemarkerLinks expandProperties="yes">
       
    55                 macro: ${basedir}/../src/templates
       
    56             </freemarkerLinks>
       
    57             <data>
       
    58                 templatedir: "${basedir}/src/templates"
       
    59                 template: "components_status.xml.ftl"
       
    60                 dbPath: "tests/metadata_db"
       
    61                 countOnly: "true"
       
    62                 tableName: "out"
       
    63                 queryString: "where priority='WARNING' or priority='error'"
       
    64                 limit: "500"
       
    65                 ant: antProperties()
       
    66             </data>
       
    67         </fmpp>
       
    68     </target>
    40     </target>
    69 
    41 
    70     <hlm:metadatafilterset id="metadata.regex.test">
    42     <hlm:metadatafilterset id="metadata.regex.test">
    71         <hlm:metadatafilter priority="ERROR" regex="^Error \d+: this is some serious error.*" description="Test pattern for testing metadataRegexTest condition."/>
    43         <hlm:metadatafilter severity="ERROR" regex="^Error \d+: this is some serious error.*" description="Test pattern for testing metadataRegexTest condition."/>
    72     </hlm:metadatafilterset>
    44     </hlm:metadatafilterset>
    73 
    45 
    74     <target name="test-scanlog-metadata-regex-pass">
    46     <target name="test-metadata-regex-pass">
    75         <au:assertTrue>
    47         <au:assertTrue>
    76             <hlm:metadataRegexTest severity="ERROR" string="Error 193: this is some serious error">
    48             <hlm:metadataRegexTest severity="ERROR" string="Error 193: this is some serious error">
    77                 <hlm:metadatafilterset refid="metadata.regex.test"/>
    49                 <hlm:metadatafilterset refid="metadata.regex.test"/>
    78             </hlm:metadataRegexTest>
    50             </hlm:metadataRegexTest>
    79         </au:assertTrue>
    51         </au:assertTrue>
    80     </target>
    52     </target>
    81     <target name="test-scanlog-metadata-regex-fail-1">
    53 
       
    54     <target name="test-metadata-regex-fail-string-missing">
    82         <au:expectfailure>
    55         <au:expectfailure>
    83             <fail>
    56             <fail>
    84                 <condition>
    57                 <condition>
    85                     <hlm:metadataRegexTest severity="ERROR">
    58                     <hlm:metadataRegexTest severity="ERROR">
    86                         <hlm:metadatafilterset refid="metadata.regex.test"/>
    59                         <hlm:metadatafilterset refid="metadata.regex.test"/>
    87                     </hlm:metadataRegexTest>
    60                     </hlm:metadataRegexTest>
    88                 </condition>
    61                 </condition>
    89             </fail>
    62             </fail>
    90         </au:expectfailure>
    63         </au:expectfailure>
    91     </target>
    64     </target>
    92     <target name="test-scanlog-metadata-regex-fail-2">
    65     
       
    66     <target name="test-metadata-regex-fail-severity-missing">
    93         <au:expectfailure>
    67         <au:expectfailure>
    94             <fail>
    68             <fail>
    95                 <condition>
    69                 <condition>
    96                     <hlm:metadataRegexTest string="Error 193: this is some serious error">
    70                     <hlm:metadataRegexTest string="Error 193: this is some serious error">
    97                         <hlm:metadatafilterset refid="metadata.regex.test"/>
    71                         <hlm:metadatafilterset refid="metadata.regex.test"/>
    99                 </condition>
    73                 </condition>
   100             </fail>
    74             </fail>
   101         </au:expectfailure>
    75         </au:expectfailure>
   102     </target>
    76     </target>
   103     
    77     
   104     
    78     <target name="test-same-log-several-times">
   105     <hlm:metadatafilterset id="filterset.imaker">
    79         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
   106         <metadatafilter priority="error" regex="^\s*Total duration:\s+\d+:\d+\s+Status:\s+FAILED" description="" />
       
   107         <metadatafilter priority="error" regex="^.+- DOESN'T EXIST" description="" />
       
   108     </hlm:metadatafilterset>
       
   109     <hlm:metadatafilterset id="filterset.abld">
       
   110         <metadatafilter priority="error" regex="^ERROR:" description="" />
       
   111         <metadatafilter priority="warning" regex="^WARNING:.*" description="" />
       
   112     </hlm:metadatafilterset>
       
   113     
       
   114     <target name="test-rombuild-metadata">
       
   115         <hlm:metadatarecord database="${basedir}\metadata_db">
       
   116             <hlm:imakermetadatainput>
    80             <hlm:imakermetadatainput>
   117                 <fileset casesensitive="false" file="${basedir}/../data/build_roms_sample.log" />
    81                 <fileset casesensitive="false" file="../data/sample_abld.log" />
   118                 <fileset casesensitive="false" file="${basedir}/../data/sample_abld.log" />
    82                 <hlm:metadatafilterset>
   119                 <metadatafilterset refid="filterset.imaker" />
    83                     <metadatafilter severity="error" regex="^ERROR:" description="" />
       
    84                     <metadatafilter severity="warning" regex="^WARNING:.*" description="" />
       
    85                 </hlm:metadatafilterset>
   120             </hlm:imakermetadatainput>
    86             </hlm:imakermetadatainput>
   121         </hlm:metadatarecord>
    87         </hlm:metadatarecord>
   122         <hlm:metadatarecord database="${basedir}\metadata_db">
    88         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
   123             <hlm:imakermetadatainput>
    89             <hlm:imakermetadatainput>
   124                 <fileset casesensitive="false" file="${basedir}/../data/sample_abld.log" />
    90                 <fileset casesensitive="false" file="../data/sample_abld.log" />
   125                 <metadatafilterset refid="filterset.abld" />
    91                 <hlm:metadatafilterset>
       
    92                     <metadatafilter severity="error" regex="^ERROR:" description="" />
       
    93                     <metadatafilter severity="warning" regex="^WARNING:.*" description="" />
       
    94                 </hlm:metadatafilterset>
   126             </hlm:imakermetadatainput>
    95             </hlm:imakermetadatainput>
   127         </hlm:metadatarecord>
    96         </hlm:metadatarecord>
   128         
    97     </target>
   129         <fmpp sourceFile="${basedir}/../../../../../tools/common/templates/diamonds/build_roms_diamonds.xml.ftl"
    98     
   130                      outputfile="build_roms_diamonds.xml">
    99     <scriptdef language="jython" name="createLog">
   131             <data expandProperties="yes">
   100         <attribute name="file" />
   132                 dbPath: ${basedir}\metadata_db
   101         <attribute name="length" />
   133                 ant: antProperties()
   102         <![CDATA[
   134             </data>
   103 f = open(attributes.get('file'), 'w+')
   135         </fmpp>
   104 length = attributes.get('length')
   136         
   105 if length:
   137         <loadfile srcfile="build_roms_diamonds.xml" property="diamonds.output"/>
   106     length = int(length)
   138         <au:assertMatches string="${diamonds.output}" pattern=".*?RM-XXX_010\.014_00\.01_79\.92_prd\.rofs3\.fpsx.*" singleline="true"/>
   107 else:
   139         <delete file="build_roms_diamonds.xml"/>
   108     length = 10000
   140         <delete dir="${basedir}\metadata_db"/>
   109 try:
   141     </target>
   110     while length > 0:
   142     
   111         f.write("ERROR: error %d\n" % length)
       
   112         length = length - 1
       
   113 finally:
       
   114     f.close()
       
   115         ]]>
       
   116     </scriptdef>
       
   117     
       
   118     <!-- Let's try to get 4 logs pushed in parallel into the database. -->
       
   119     <target name="test-parallel-database-creation">
       
   120         <createLog file="${test.temp.dir}/log1.log" length="10000"/>
       
   121         <copy file="${test.temp.dir}/log1.log" tofile="${test.temp.dir}/log2.log" />
       
   122         <copy file="${test.temp.dir}/log1.log" tofile="${test.temp.dir}/log3.log" />
       
   123         <copy file="${test.temp.dir}/log1.log" tofile="${test.temp.dir}/log4.log" />
       
   124         
       
   125         <parallel>
       
   126             <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   127                 <hlm:textmetadatainput>
       
   128                     <fileset casesensitive="false" file="${test.temp.dir}/log1.log" />
       
   129                     <hlm:metadatafilterset>
       
   130                         <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   131                     </hlm:metadatafilterset>
       
   132                 </hlm:textmetadatainput>
       
   133             </hlm:metadatarecord>
       
   134             <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   135                 <hlm:textmetadatainput>
       
   136                     <fileset casesensitive="false" file="${test.temp.dir}/log2.log" />
       
   137                     <hlm:metadatafilterset>
       
   138                         <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   139                     </hlm:metadatafilterset>
       
   140                 </hlm:textmetadatainput>
       
   141             </hlm:metadatarecord>
       
   142             <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   143                 <hlm:textmetadatainput>
       
   144                     <fileset casesensitive="false" file="${test.temp.dir}/log3.log" />
       
   145                     <hlm:metadatafilterset>
       
   146                         <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   147                     </hlm:metadatafilterset>
       
   148                 </hlm:textmetadatainput>
       
   149             </hlm:metadatarecord>
       
   150             <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   151                 <hlm:textmetadatainput>
       
   152                     <fileset casesensitive="false" file="${test.temp.dir}/log4.log" />
       
   153                     <hlm:metadatafilterset>
       
   154                         <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   155                     </hlm:metadatafilterset>
       
   156                 </hlm:textmetadatainput>
       
   157             </hlm:metadatarecord>
       
   158         </parallel>
       
   159         <hlm:metadataCountSeverity severity="error" database="${test.temp.dir}/metadata_db" property="errors">
       
   160             <fileset dir="${test.temp.dir}" includes="log*.log" />
       
   161         </hlm:metadataCountSeverity>
       
   162         <echo>errors: ${errors}</echo>
       
   163         <au:assertTrue>
       
   164             <equals arg1="${errors}" arg2="40000" />
       
   165         </au:assertTrue>
       
   166     </target>
       
   167     
       
   168     <!-- Let's metadata delete. -->
       
   169     <target name="test-metadatadelete">
       
   170         <createLog file="${test.temp.dir}/log1.log" length="10"/>
       
   171         <copy file="${test.temp.dir}/log1.log" tofile="${test.temp.dir}/log2.log" />
       
   172         
       
   173         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   174             <hlm:textmetadatainput>
       
   175                 <fileset dir="${test.temp.dir}" includes="log*.log" />
       
   176                 <hlm:metadatafilterset>
       
   177                     <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   178                 </hlm:metadatafilterset>
       
   179             </hlm:textmetadatainput>
       
   180         </hlm:metadatarecord>
       
   181         
       
   182         <hlm:metadataCountSeverity severity="error" log="${test.temp.dir}/log1.log" 
       
   183             database="${test.temp.dir}/metadata_db" property="errors.before" />        
       
   184         <echo>errors.before: ${errors.before}</echo>
       
   185         <hlm:metadatadelete database="${test.temp.dir}/metadata_db">
       
   186             <fileset dir="${test.temp.dir}" includes="log1.log" />
       
   187         </hlm:metadatadelete>
       
   188         <hlm:metadataCountSeverity severity="error" log="${test.temp.dir}/log1.log" 
       
   189             database="${test.temp.dir}/metadata_db" property="errors.after" />        
       
   190         <echo>errors.after: ${errors.after}</echo>
       
   191 
       
   192         <au:assertTrue>
       
   193             <equals arg1="${errors.before}" arg2="10" />
       
   194         </au:assertTrue>
       
   195         <au:assertTrue>
       
   196             <equals arg1="${errors.after}" arg2="0" />
       
   197         </au:assertTrue>
       
   198     </target>
       
   199 
       
   200     
       
   201     <!-- Test that error and warnings are counted properly by the hlm:metadataHasSeverity task -->
       
   202     <target name="test-has-severity">
       
   203         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   204             <hlm:textmetadatainput>
       
   205                 <fileset file="${project.dir}/../data/countseverity/text_has_severity.log" />
       
   206                 <hlm:metadatafilterset>
       
   207                     <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   208                     <metadatafilter severity="warning" regex="^WARNING:.*" description="" />
       
   209                 </hlm:metadatafilterset>
       
   210             </hlm:textmetadatainput>
       
   211         </hlm:metadatarecord>
       
   212         
       
   213         <au:assertTrue message="Must found an error">
       
   214             <hlm:metadataHasSeverity severity="error" log="${project.dir}/../data/countseverity/text_has_severity.log" database="${test.temp.dir}/metadata_db" />
       
   215         </au:assertTrue>
       
   216         <au:assertTrue message="Must found a warning">
       
   217             <hlm:metadataHasSeverity severity="warning" log="${project.dir}/../data/countseverity/text_has_severity.log" database="${test.temp.dir}/metadata_db" />
       
   218         </au:assertTrue>
       
   219         
       
   220         <au:assertTrue message="Must found an error">
       
   221             <hlm:metadataHasSeverity severity="error" database="${test.temp.dir}/metadata_db">
       
   222                 <fileset file="${project.dir}/../data/countseverity/text_has_severity.log" />
       
   223             </hlm:metadataHasSeverity>
       
   224         </au:assertTrue>
       
   225         <au:assertTrue message="Must found a warning">
       
   226             <hlm:metadataHasSeverity severity="warning" database="${test.temp.dir}/metadata_db">
       
   227                 <fileset file="${project.dir}/../data/countseverity/text_has_severity.log" />
       
   228             </hlm:metadataHasSeverity>
       
   229         </au:assertTrue>
       
   230     </target>
       
   231         
       
   232     <!-- Test that error and warnings are counted properly by the hlm:metadataHasSeverity task -->
       
   233     <target name="test-has-severity-testing-parameters">
       
   234         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   235             <hlm:textmetadatainput>
       
   236                 <fileset file="${project.dir}/../data/countseverity/text_has_severity.log" />
       
   237                 <hlm:metadatafilterset>
       
   238                     <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   239                     <metadatafilter severity="error" regex="^WARNING:*" description="" />
       
   240                 </hlm:metadatafilterset>
       
   241             </hlm:textmetadatainput>
       
   242         </hlm:metadatarecord>
       
   243         
       
   244         <au:expectfailure expectedMessage="'log' attribute not defined.">
       
   245             <condition property="test" value="whatever">
       
   246                 <hlm:metadataHasSeverity severity="error" database="${test.temp.dir}/metadata_db" />
       
   247             </condition>
       
   248         </au:expectfailure>
       
   249         <au:expectfailure expectedMessage="'database' attribute not defined.">
       
   250             <condition property="test" value="whatever">
       
   251                 <hlm:metadataHasSeverity severity="error" log="${project.dir}/../data/countseverity/text_has_severity.log" />
       
   252             </condition>
       
   253         </au:expectfailure>
       
   254         <au:expectfailure expectedMessage="'severity' attribute is not defined.">
       
   255             <condition property="test" value="whatever">
       
   256                 <hlm:metadataHasSeverity log="${project.dir}/../data/countseverity/text_has_severity.log" database="${test.temp.dir}/metadata_db" />
       
   257             </condition>
       
   258         </au:expectfailure>
       
   259     </target>
       
   260     
       
   261 	<!-- If the database is invalid, for example in the case of
       
   262 	     Derby only the directory exists, then implementation
       
   263 	     should remove it and create a valid database.
       
   264 	 -->
       
   265     <target name="test-invalid-database">
       
   266         <mkdir dir="${test.temp.dir}/metadata_db" />
       
   267         <createLog file="${test.temp.dir}/log1.log" length="10"/>
       
   268         <hlm:metadatarecord database="${test.temp.dir}/metadata_db">
       
   269             <hlm:textmetadatainput>
       
   270                 <fileset casesensitive="false" file="${test.temp.dir}/log1.log" />
       
   271                 <hlm:metadatafilterset>
       
   272                     <metadatafilter severity="error" regex="^ERROR:.*" description="" />
       
   273                 </hlm:metadatafilterset>
       
   274             </hlm:textmetadatainput>
       
   275         </hlm:metadatarecord>    	
       
   276         <hlm:metadataCountSeverity severity="error" log="${test.temp.dir}/log1.log" 
       
   277             database="${test.temp.dir}/metadata_db" property="errors" />        
       
   278         <echo>errors: ${errors}</echo>
       
   279         <au:assertTrue>
       
   280             <equals arg1="${errors}" arg2="10" />
       
   281         </au:assertTrue>
       
   282     </target>
   143 </project>
   283 </project>
   144 
   284 
   145 
   285 
   146 
   286