|
@@ -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);
|
|
|
|