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

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.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 45e4089b
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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;
}
+18 −11
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ class Event(dict):
        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 @@ class Event(dict):
                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 @@ class Test(object):
        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 @@ class Test(object):
                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 @@ class Test(object):
            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]:
+0 −1
Original line number Diff line number Diff line
@@ -37,4 +37,3 @@ config2=0
branch_sample_type=0
sample_regs_user=0
sample_stack_user=0
optional=0
+0 −1
Original line number Diff line number Diff line
@@ -37,4 +37,3 @@ config2=0
branch_sample_type=0
sample_regs_user=0
sample_stack_user=0
optional=0