diff options
-rw-r--r-- | tools/perf/tests/attr.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py index e702b82dcb86..2f629ca485bc 100644 --- a/tools/perf/tests/attr.py +++ b/tools/perf/tests/attr.py | |||
@@ -68,7 +68,7 @@ class Event(dict): | |||
68 | self[key] = val | 68 | self[key] = val |
69 | 69 | ||
70 | def __init__(self, name, data, base): | 70 | def __init__(self, name, data, base): |
71 | log.info(" Event %s" % name); | 71 | log.debug(" Event %s" % name); |
72 | self.name = name; | 72 | self.name = name; |
73 | self.group = '' | 73 | self.group = '' |
74 | self.add(base) | 74 | self.add(base) |
@@ -97,6 +97,14 @@ class Event(dict): | |||
97 | return False | 97 | return False |
98 | return True | 98 | return True |
99 | 99 | ||
100 | def diff(self, other): | ||
101 | for t in Event.terms: | ||
102 | if not self.has_key(t) or not other.has_key(t): | ||
103 | continue | ||
104 | if not self.compare_data(self[t], other[t]): | ||
105 | log.warning("expected %s=%s, got %s" % (t, self[t], other[t])) | ||
106 | |||
107 | |||
100 | # Test file description needs to have following sections: | 108 | # Test file description needs to have following sections: |
101 | # [config] | 109 | # [config] |
102 | # - just single instance in file | 110 | # - just single instance in file |
@@ -113,7 +121,7 @@ class Test(object): | |||
113 | parser = ConfigParser.SafeConfigParser() | 121 | parser = ConfigParser.SafeConfigParser() |
114 | parser.read(path) | 122 | parser.read(path) |
115 | 123 | ||
116 | log.warning("running '%s'" % path) | 124 | log.debug("running '%s'" % path) |
117 | 125 | ||
118 | self.path = path | 126 | self.path = path |
119 | self.test_dir = options.test_dir | 127 | self.test_dir = options.test_dir |
@@ -128,7 +136,7 @@ class Test(object): | |||
128 | 136 | ||
129 | self.expect = {} | 137 | self.expect = {} |
130 | self.result = {} | 138 | self.result = {} |
131 | log.info(" loading expected events"); | 139 | log.debug(" loading expected events"); |
132 | self.load_events(path, self.expect) | 140 | self.load_events(path, self.expect) |
133 | 141 | ||
134 | def is_event(self, name): | 142 | def is_event(self, name): |
@@ -164,7 +172,7 @@ class Test(object): | |||
164 | self.perf, self.command, tempdir, self.args) | 172 | self.perf, self.command, tempdir, self.args) |
165 | ret = os.WEXITSTATUS(os.system(cmd)) | 173 | ret = os.WEXITSTATUS(os.system(cmd)) |
166 | 174 | ||
167 | log.info(" running '%s' ret %d " % (cmd, ret)) | 175 | log.warning(" running '%s' ret %d " % (cmd, ret)) |
168 | 176 | ||
169 | if ret != int(self.ret): | 177 | if ret != int(self.ret): |
170 | raise Unsup(self) | 178 | raise Unsup(self) |
@@ -172,7 +180,7 @@ class Test(object): | |||
172 | def compare(self, expect, result): | 180 | def compare(self, expect, result): |
173 | match = {} | 181 | match = {} |
174 | 182 | ||
175 | log.info(" compare"); | 183 | log.debug(" compare"); |
176 | 184 | ||
177 | # For each expected event find all matching | 185 | # For each expected event find all matching |
178 | # events in result. Fail if there's not any. | 186 | # events in result. Fail if there's not any. |
@@ -187,10 +195,11 @@ class Test(object): | |||
187 | else: | 195 | else: |
188 | log.debug(" ->FAIL"); | 196 | log.debug(" ->FAIL"); |
189 | 197 | ||
190 | log.info(" match: [%s] matches %s" % (exp_name, str(exp_list))) | 198 | log.debug(" match: [%s] matches %s" % (exp_name, str(exp_list))) |
191 | 199 | ||
192 | # we did not any matching event - fail | 200 | # we did not any matching event - fail |
193 | if (not exp_list): | 201 | if (not exp_list): |
202 | exp_event.diff(res_event) | ||
194 | raise Fail(self, 'match failure'); | 203 | raise Fail(self, 'match failure'); |
195 | 204 | ||
196 | match[exp_name] = exp_list | 205 | match[exp_name] = exp_list |
@@ -208,10 +217,10 @@ class Test(object): | |||
208 | if res_group not in match[group]: | 217 | if res_group not in match[group]: |
209 | raise Fail(self, 'group failure') | 218 | raise Fail(self, 'group failure') |
210 | 219 | ||
211 | log.info(" group: [%s] matches group leader %s" % | 220 | log.debug(" group: [%s] matches group leader %s" % |
212 | (exp_name, str(match[group]))) | 221 | (exp_name, str(match[group]))) |
213 | 222 | ||
214 | log.info(" matched") | 223 | log.debug(" matched") |
215 | 224 | ||
216 | def resolve_groups(self, events): | 225 | def resolve_groups(self, events): |
217 | for name, event in events.items(): | 226 | for name, event in events.items(): |
@@ -233,7 +242,7 @@ class Test(object): | |||
233 | self.run_cmd(tempdir); | 242 | self.run_cmd(tempdir); |
234 | 243 | ||
235 | # load events expectation for the test | 244 | # load events expectation for the test |
236 | log.info(" loading result events"); | 245 | log.debug(" loading result events"); |
237 | for f in glob.glob(tempdir + '/event*'): | 246 | for f in glob.glob(tempdir + '/event*'): |
238 | self.load_events(f, self.result); | 247 | self.load_events(f, self.result); |
239 | 248 | ||