Skip to content

Commit

Permalink
perf tests: Removing 'optional' field
Browse files Browse the repository at this point in the history
Since we allow multiple values in event field assignment, there's no
need for 'optional' field.. old version removal leftover.

Adding some comments into attr.py script regarding the test event load.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1352130579-13451-5-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Jiri Olsa authored and Arnaldo Carvalho de Melo committed Nov 5, 2012
1 parent 45e4089 commit 8dfec40
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 15 deletions.
2 changes: 0 additions & 2 deletions tools/perf/tests/attr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
29 changes: 18 additions & 11 deletions tools/perf/tests/attr.py
Original file line number Diff line number Diff line change
Expand Up @@ -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('|')

Expand All @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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
Expand All @@ -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]:
Expand Down
1 change: 0 additions & 1 deletion tools/perf/tests/attr/base-record
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,3 @@ config2=0
branch_sample_type=0
sample_regs_user=0
sample_stack_user=0
optional=0
1 change: 0 additions & 1 deletion tools/perf/tests/attr/base-stat
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,3 @@ config2=0
branch_sample_type=0
sample_regs_user=0
sample_stack_user=0
optional=0

0 comments on commit 8dfec40

Please sign in to comment.