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 |