perf tests: Removing 'optional' field
authorJiri Olsa <jolsa@redhat.com>
Mon, 5 Nov 2012 15:49:39 +0000 (16:49 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 5 Nov 2012 17:03:59 +0000 (14:03 -0300)
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>
tools/perf/tests/attr.c
tools/perf/tests/attr.py
tools/perf/tests/attr/base-record
tools/perf/tests/attr/base-stat

index 6fa84b7065cd05a948d402f1cd547043c7225f35..6e2feee8db2a207662f87cb33484c43f10c3d3bd 100644 (file)
@@ -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;
 }
index 28c0481bc984f543bc974330f1311c206f9c69a4..9b25b33cf3e92598214da8f65d2bef4d38b0ab6d 100644 (file)
@@ -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]:
index 8262794734e0d4e37f2c8b2ea3c96e2a8441eb76..f1485d8e6a0b473550473784f9a8de435e544d57 100644 (file)
@@ -37,4 +37,3 @@ config2=0
 branch_sample_type=0
 sample_regs_user=0
 sample_stack_user=0
-optional=0
index 46f8851eaf4e1d7ddebe5afd3c673986eae7ad87..4bd79a82784f0c56f93db021b21b7dd24e07176f 100644 (file)
@@ -37,4 +37,3 @@ config2=0
 branch_sample_type=0
 sample_regs_user=0
 sample_stack_user=0
-optional=0