From 0d3657380e1b69b0353fdf95e8122d05e25a15f3 Mon Sep 17 00:00:00 2001 From: Jiri Olsa Date: Mon, 5 Nov 2012 16:49:39 +0100 Subject: [PATCH] --- yaml --- r: 338966 b: refs/heads/master c: 8dfec403e39b7c37fd6e8813bacc01da1e1210ab h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/tools/perf/tests/attr.c | 2 -- trunk/tools/perf/tests/attr.py | 29 +++++++++++++++---------- trunk/tools/perf/tests/attr/base-record | 1 - trunk/tools/perf/tests/attr/base-stat | 1 - 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/[refs] b/[refs] index 5a073f7f77a4..97cb289af4a7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 45e4089bc6398da2cf0609b614bc519970cb8442 +refs/heads/master: 8dfec403e39b7c37fd6e8813bacc01da1e1210ab diff --git a/trunk/tools/perf/tests/attr.c b/trunk/tools/perf/tests/attr.c index 6fa84b7065cd..6e2feee8db2a 100644 --- a/trunk/tools/perf/tests/attr.c +++ b/trunk/tools/perf/tests/attr.c @@ -126,8 +126,6 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu, WRITE_ASS(sample_regs_user, "llu"); WRITE_ASS(sample_stack_user, PRIu32); - __WRITE_ASS(optional, "d", 0); - fclose(file); return 0; } diff --git a/trunk/tools/perf/tests/attr.py b/trunk/tools/perf/tests/attr.py index 28c0481bc984..9b25b33cf3e9 100644 --- a/trunk/tools/perf/tests/attr.py +++ b/trunk/tools/perf/tests/attr.py @@ -75,6 +75,7 @@ def __init__(self, name, data, base): self.add(data) def compare_data(self, a, b): + # Allow multiple values in assignment separated by '|' a_list = a.split('|') b_list = b.split('|') @@ -96,12 +97,17 @@ def equal(self, other): return False return True - def is_optional(self): - if self['optional'] == '1': - return True - else: - return False - +# Test file description needs to have following sections: +# [config] +# - just single instance in file +# - needs to specify: +# 'command' - perf command name +# 'args' - special command arguments +# 'ret' - expected command return value (0 by default) +# +# [eventX:base] +# - one or multiple instances in file +# - expected values assignments class Test(object): def __init__(self, path, options): parser = ConfigParser.SafeConfigParser() @@ -135,11 +141,15 @@ def load_events(self, path, events): parser_event = ConfigParser.SafeConfigParser() parser_event.read(path) + # The event record section header contains 'event' word, + # optionaly followed by ':' allowing to load 'parent + # event' first as a base for section in filter(self.is_event, parser_event.sections()): parser_items = parser_event.items(section); base_items = {} + # Read parent event if there's any if (':' in section): base = section[section.index(':') + 1:] parser_base = ConfigParser.SafeConfigParser() @@ -177,11 +187,10 @@ def compare(self, expect, result): else: log.debug(" ->FAIL"); - log.info(" match: [%s] optional(%d) matches %s" % - (exp_name, exp_event.is_optional(), str(exp_list))) + log.info(" match: [%s] matches %s" % (exp_name, str(exp_list))) # we did not any matching event - fail - if (not exp_list) and (not exp_event.is_optional()): + if (not exp_list): raise Fail(self, 'match failure'); match[exp_name] = exp_list @@ -194,8 +203,6 @@ def compare(self, expect, result): if (group == ''): continue - # XXX group matching does not account for - # optional events as above matching does for res_name in match[exp_name]: res_group = result[res_name].group if res_group not in match[group]: diff --git a/trunk/tools/perf/tests/attr/base-record b/trunk/tools/perf/tests/attr/base-record index 8262794734e0..f1485d8e6a0b 100644 --- a/trunk/tools/perf/tests/attr/base-record +++ b/trunk/tools/perf/tests/attr/base-record @@ -37,4 +37,3 @@ config2=0 branch_sample_type=0 sample_regs_user=0 sample_stack_user=0 -optional=0 diff --git a/trunk/tools/perf/tests/attr/base-stat b/trunk/tools/perf/tests/attr/base-stat index 46f8851eaf4e..4bd79a82784f 100644 --- a/trunk/tools/perf/tests/attr/base-stat +++ b/trunk/tools/perf/tests/attr/base-stat @@ -37,4 +37,3 @@ config2=0 branch_sample_type=0 sample_regs_user=0 sample_stack_user=0 -optional=0