summaryrefslogtreecommitdiff
path: root/tests/pdtest
diff options
context:
space:
mode:
authorBert Vermeulen <bert@biot.com>2014-06-23 19:49:47 +0200
committerBert Vermeulen <bert@biot.com>2014-06-23 19:49:47 +0200
commitd510f7b3d5d03c6fca5b6af4e184dc2f46da9a1a (patch)
tree99a4bd9766c834c0faf547f890682dd21e70072b /tests/pdtest
parent4e891b94cae1b3e83155721476137a900fe242a6 (diff)
downloadlibsigrokdecode-d510f7b3d5d03c6fca5b6af4e184dc2f46da9a1a.tar.gz
libsigrokdecode-d510f7b3d5d03c6fca5b6af4e184dc2f46da9a1a.zip
pdtest/runtc: Support for output type 'exception'.
The match value should be the name of the exception thrown, e.g. AttributeError, IndexError or even a custom exception defined in the protocol decoder, such as SamplerateError.
Diffstat (limited to 'tests/pdtest')
-rwxr-xr-xtests/pdtest7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/pdtest b/tests/pdtest
index 57a8b54..088ad91 100755
--- a/tests/pdtest
+++ b/tests/pdtest
@@ -20,6 +20,7 @@
import os
import sys
+import re
from getopt import getopt
from tempfile import mkstemp
from subprocess import Popen, PIPE
@@ -376,6 +377,12 @@ def run_tests(tests, fix=False):
if coverage:
results[-1]['coverage_report'] = coverage
os.unlink(outfile)
+ if op['type'] == 'exception' and 'error' in results[-1]:
+ # filter out the exception we were looking for
+ reg = "^Error: srd: Protocol decoder instance %s: %s:" % (op['pd'], op['match'])
+ if re.match(reg, results[-1]['error']):
+ # found it, not an error
+ results[-1].pop('error')
if VERBOSE:
if 'diff' in results[-1]:
INFO("Output mismatch")