Commit 8dfec403 authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf tests: Removing 'optional' field

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: default avatarJiri 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 45e4089b
...@@ -126,8 +126,6 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu, ...@@ -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_regs_user, "llu");
WRITE_ASS(sample_stack_user, PRIu32); WRITE_ASS(sample_stack_user, PRIu32);
__WRITE_ASS(optional, "d", 0);
fclose(file); fclose(file);
return 0; return 0;
} }
......
...@@ -75,6 +75,7 @@ class Event(dict): ...@@ -75,6 +75,7 @@ class Event(dict):
self.add(data) self.add(data)
def compare_data(self, a, b): def compare_data(self, a, b):
# Allow multiple values in assignment separated by '|'
a_list = a.split('|') a_list = a.split('|')
b_list = b.split('|') b_list = b.split('|')
...@@ -96,12 +97,17 @@ class Event(dict): ...@@ -96,12 +97,17 @@ class Event(dict):
return False return False
return True return True
def is_optional(self): # Test file description needs to have following sections:
if self['optional'] == '1': # [config]
return True # - just single instance in file
else: # - needs to specify:
return False # '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): class Test(object):
def __init__(self, path, options): def __init__(self, path, options):
parser = ConfigParser.SafeConfigParser() parser = ConfigParser.SafeConfigParser()
...@@ -135,11 +141,15 @@ class Test(object): ...@@ -135,11 +141,15 @@ class Test(object):
parser_event = ConfigParser.SafeConfigParser() parser_event = ConfigParser.SafeConfigParser()
parser_event.read(path) 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()): for section in filter(self.is_event, parser_event.sections()):
parser_items = parser_event.items(section); parser_items = parser_event.items(section);
base_items = {} base_items = {}
# Read parent event if there's any
if (':' in section): if (':' in section):
base = section[section.index(':') + 1:] base = section[section.index(':') + 1:]
parser_base = ConfigParser.SafeConfigParser() parser_base = ConfigParser.SafeConfigParser()
...@@ -177,11 +187,10 @@ class Test(object): ...@@ -177,11 +187,10 @@ class Test(object):
else: else:
log.debug(" ->FAIL"); log.debug(" ->FAIL");
log.info(" match: [%s] optional(%d) matches %s" % log.info(" match: [%s] matches %s" % (exp_name, str(exp_list)))
(exp_name, exp_event.is_optional(), str(exp_list)))
# we did not any matching event - fail # 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'); raise Fail(self, 'match failure');
match[exp_name] = exp_list match[exp_name] = exp_list
...@@ -194,8 +203,6 @@ class Test(object): ...@@ -194,8 +203,6 @@ class Test(object):
if (group == ''): if (group == ''):
continue continue
# XXX group matching does not account for
# optional events as above matching does
for res_name in match[exp_name]: for res_name in match[exp_name]:
res_group = result[res_name].group res_group = result[res_name].group
if res_group not in match[group]: if res_group not in match[group]:
......
...@@ -37,4 +37,3 @@ config2=0 ...@@ -37,4 +37,3 @@ config2=0
branch_sample_type=0 branch_sample_type=0
sample_regs_user=0 sample_regs_user=0
sample_stack_user=0 sample_stack_user=0
optional=0
...@@ -37,4 +37,3 @@ config2=0 ...@@ -37,4 +37,3 @@ config2=0
branch_sample_type=0 branch_sample_type=0
sample_regs_user=0 sample_regs_user=0
sample_stack_user=0 sample_stack_user=0
optional=0
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment