|
1 # |
|
2 # Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
|
3 # All rights reserved. |
|
4 # This component and the accompanying materials are made available |
|
5 # under the terms of the License "Eclipse Public License v1.0" |
|
6 # which accompanies this distribution, and is available |
|
7 # at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 # |
|
9 # Initial Contributors: |
|
10 # Nokia Corporation - initial contribution. |
|
11 # |
|
12 # Contributors: |
|
13 # |
|
14 # Description: |
|
15 # |
|
16 |
|
17 from raptor_tests import SmokeTest |
|
18 |
|
19 def run(): |
|
20 |
|
21 t = SmokeTest() |
|
22 t.description = "Test the passing of parameters to log filters" |
|
23 |
|
24 command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5_urel --filters=" |
|
25 |
|
26 # no parameters means count all tags |
|
27 t.name = "filter_params_all_tags" |
|
28 t.command = command + "FilterTagCounter" |
|
29 t.mustmatch_singleline = [ |
|
30 "^info \d+ \d+", |
|
31 "^whatlog \d+ \d+", |
|
32 "^clean \d+ \d+" |
|
33 ] |
|
34 t.run() |
|
35 |
|
36 # empty parameter lists are valid |
|
37 t.name = "filter_params_all_tags2" |
|
38 t.command = command + "FilterTagCounter[]" |
|
39 t.run() |
|
40 |
|
41 # parameters mean report only those tags |
|
42 t.name = "filter_params_info" |
|
43 t.command = command + "FilterTagCounter[info]" |
|
44 t.mustmatch_singleline = [ |
|
45 "^info \d+ \d+" |
|
46 ] |
|
47 t.mustnotmatch_singleline = [ |
|
48 "^whatlog \d+ \d+", |
|
49 "^clean \d+ \d+" |
|
50 ] |
|
51 t.run() |
|
52 |
|
53 # multiple parameters are valid |
|
54 t.name = "filter_params_info_clean" |
|
55 t.command = command + "FilterTagCounter[info,clean]" |
|
56 t.mustmatch_singleline = [ |
|
57 "^info \d+ \d+", |
|
58 "^clean \d+ \d+" |
|
59 ] |
|
60 t.mustnotmatch_singleline = [ |
|
61 "^whatlog \d+ \d+" |
|
62 ] |
|
63 t.run() |
|
64 |
|
65 # using the same filter with different parameters is valid |
|
66 t.name = "filter_params_info_clean2" |
|
67 t.command = command + "FilterTagCounter[info],FilterTagCounter[clean]" |
|
68 t.run() |
|
69 |
|
70 # using the same filter with the same parameters is valid too |
|
71 t.name = "filter_params_info_clean3" |
|
72 t.command = command + "FilterTagCounter[info,clean],FilterTagCounter[info,clean]" |
|
73 t.run() |
|
74 |
|
75 |
|
76 # parameters must work with the sbs_filter script as well |
|
77 |
|
78 command = "sbs_filter --filters=%s < smoke_suite/test_resources/logexamples/filter_component.log" |
|
79 t.logfileOption = lambda :"" |
|
80 t.makefileOption = lambda :"" |
|
81 |
|
82 # should still work with no parameters |
|
83 t.name = "sbs_filter_no_params" |
|
84 t.command = command % "FilterComp" |
|
85 t.mustmatch_singleline = [ |
|
86 ] |
|
87 t.mustnotmatch_singleline = [ |
|
88 "[<>]" # no elements should be printed at all as no bld.inf is selected |
|
89 ] |
|
90 t.run() |
|
91 |
|
92 # should work with an empty parameter list |
|
93 t.name = "sbs_filter_no_params2" |
|
94 t.command = command % "FilterComp[]" |
|
95 t.run() |
|
96 |
|
97 # with a parameter |
|
98 t.name = "sbs_filter_one_param" |
|
99 t.command = command % "FilterComp[email]" |
|
100 t.stdout = [ |
|
101 "<error bldinf='y:/src/email/bld.inf'>email error #1</error>", |
|
102 "<error bldinf='y:/src/email/bld.inf'>email error #2</error>", |
|
103 "<warning bldinf='y:/src/email/bld.inf'>email warning #1</warning>", |
|
104 "<warning bldinf='y:/src/email/bld.inf'>email warning #2</warning>", |
|
105 "<whatlog bldinf='y:/src/email/bld.inf' config='armv5_urel' mmp='y:/src/email/a.mmp'>", |
|
106 "<build>/epoc32/data/email_1</build>", |
|
107 "<build>/epoc32/data/email_2</build>", |
|
108 "</whatlog>", |
|
109 "<recipe bldinf='y:/src/email/bld.inf' name='dummy'>", |
|
110 "+ make_email", |
|
111 "email was made fine", |
|
112 "<status exit='ok'></status>", |
|
113 "</recipe>", |
|
114 "<fake bldinf='y:src/email/bld.inf'>", |
|
115 " <foo>", |
|
116 " <bar>", |
|
117 " <fb>fb email</fb>", |
|
118 " </bar>", |
|
119 " </foo>", |
|
120 "</fake>" |
|
121 ] |
|
122 t.mustmatch_singleline = [] |
|
123 t.mustnotmatch_singleline = [] |
|
124 t.warnings = 2 |
|
125 t.errors = 2 |
|
126 t.run() |
|
127 |
|
128 # with multiple filters |
|
129 t.name = "sbs_filter_multi" |
|
130 t.command = command % "FilterComp[txt],FilterTagCounter[file,recipe]" |
|
131 t.stdout = [] |
|
132 t.mustmatch_singleline = [ "txt", "^file \d+", "^recipe \d+" ] |
|
133 t.mustnotmatch_singleline = [ "email" ] |
|
134 t.warnings = 2 |
|
135 t.errors = 0 |
|
136 t.run() |
|
137 |
|
138 t.name = "filter_params" |
|
139 t.print_result() |
|
140 return t |