diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-01-25 11:33:41 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-01-25 11:34:00 +0100 | 
| commit | a2d28d0c198b65fac28ea6212f5f8edc77b29c27 (patch) | |
| tree | 130c1b4464f1eb685e56ff2ce122e3e36bb52e88 /tools/perf/tests/attr.py | |
| parent | 203e04c16330c880538588e932743f404ee4fd66 (diff) | |
| parent | 2ae828786c65ab8f587647bd0f22f8fe00f1f238 (diff) | |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
. Allow skipping problematic entries in 'perf test'.
. Fix some namespace problems in the event parsing routines.
. Add 'perf test' entry to make sure the python binding doesn't have
  linking problems.
. Adjust 'perf test' attr tests verbosity levels.
. Make tools/perf build with GNU make v3.80, fix from Al Cooper.
. Do missing feature fallbacks in just one place, removing duplicated
  code in multiple tools.
. Fix some memory leaks, from David Ahern.
. Fix segfault when drawing out-of-bounds jumps, from Frederik Deweerdt.
. Allow of casting an array of char to string in 'perf probe', from
  Hyeoncheol Lee.
. Add support for wildcard in tracepoint system name, from Jiri Olsa.
. Update FSF postal address to be URL's, from Jon Stanley.
. Add anonymous huge page recognition, from Joshua Zhu.
. Remove some needless feature test checks, from Namhyung Kim.
. Multiple improvements to the sort routines, from Namhyung Kim.
. Fix warning on '>=' operator in libtraceevent, from Namhyung Kim.
. Use ARRAY_SIZE instead of reinventing it in 'perf script' and 'perf kmem',
  from Sasha Levin.
. Remove some redundant checks, from Sasha Levin.
. Test correct variable after allocation in libtraceevent, fix from Sasha Levin.
. Mark branch_info maps as referenced, fix from Stephane Eranian.
. Fix PMU format parsing test failure, from Sukadev Bhattiprolu.
. Fix possible (unlikely) buffer overflow, from Thomas Jarosch.
. Multiple 'perf script' fixes, from Tom Zanussi.
. Add missing field in PERF_RECORD_SAMPLE documentation, from Vince Weaver.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/tests/attr.py')
| -rw-r--r-- | tools/perf/tests/attr.py | 27 | 
1 files changed, 18 insertions, 9 deletions
diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py index e702b82dcb86..2f629ca485bc 100644 --- a/tools/perf/tests/attr.py +++ b/tools/perf/tests/attr.py @@ -68,7 +68,7 @@ class Event(dict):              self[key] = val      def __init__(self, name, data, base): -        log.info("    Event %s" % name); +        log.debug("    Event %s" % name);          self.name  = name;          self.group = ''          self.add(base) @@ -97,6 +97,14 @@ class Event(dict):                  return False          return True +    def diff(self, other): +        for t in Event.terms: +            if not self.has_key(t) or not other.has_key(t): +                continue +            if not self.compare_data(self[t], other[t]): +		log.warning("expected %s=%s, got %s" % (t, self[t], other[t])) +                 +  # Test file description needs to have following sections:  # [config]  #   - just single instance in file @@ -113,7 +121,7 @@ class Test(object):          parser = ConfigParser.SafeConfigParser()          parser.read(path) -        log.warning("running '%s'" % path) +        log.debug("running '%s'" % path)          self.path     = path          self.test_dir = options.test_dir @@ -128,7 +136,7 @@ class Test(object):          self.expect   = {}          self.result   = {} -        log.info("  loading expected events"); +        log.debug("  loading expected events");          self.load_events(path, self.expect)      def is_event(self, name): @@ -164,7 +172,7 @@ class Test(object):                self.perf, self.command, tempdir, self.args)          ret = os.WEXITSTATUS(os.system(cmd)) -        log.info("  running '%s' ret %d " % (cmd, ret)) +        log.warning("  running '%s' ret %d " % (cmd, ret))          if ret != int(self.ret):              raise Unsup(self) @@ -172,7 +180,7 @@ class Test(object):      def compare(self, expect, result):          match = {} -        log.info("  compare"); +        log.debug("  compare");          # For each expected event find all matching          # events in result. Fail if there's not any. @@ -187,10 +195,11 @@ class Test(object):                  else:                      log.debug("    ->FAIL"); -            log.info("    match: [%s] matches %s" % (exp_name, str(exp_list))) +            log.debug("    match: [%s] matches %s" % (exp_name, str(exp_list)))              # we did not any matching event - fail              if (not exp_list): +		exp_event.diff(res_event)                  raise Fail(self, 'match failure');              match[exp_name] = exp_list @@ -208,10 +217,10 @@ class Test(object):                  if res_group not in match[group]:                      raise Fail(self, 'group failure') -                log.info("    group: [%s] matches group leader %s" % +                log.debug("    group: [%s] matches group leader %s" %                           (exp_name, str(match[group]))) -        log.info("  matched") +        log.debug("  matched")      def resolve_groups(self, events):          for name, event in events.items(): @@ -233,7 +242,7 @@ class Test(object):              self.run_cmd(tempdir);              # load events expectation for the test -            log.info("  loading result events"); +            log.debug("  loading result events");              for f in glob.glob(tempdir + '/event*'):                  self.load_events(f, self.result);  | 
