]> sigrok.org Git - libsigrokdecode.git/blobdiff - tests/pdtest
pdtest: Add option for custom sigrok-dumps repository path.
[libsigrokdecode.git] / tests / pdtest
index 59348d6957d4f1176b724da43b4a3b76735bf2c0..45fb342cede6ac54464ea6f1a76bdfead660f3aa 100755 (executable)
@@ -46,7 +46,7 @@ def usage(msg=None):
     sys.exit()
 
 
-def check_testcase(tc):
+def check_tclist(tc):
     if 'pdlist' not in tc or not tc['pdlist']:
         return("No protocol decoders")
     if 'input' not in tc or not tc['input']:
@@ -167,11 +167,11 @@ def parse_testfile(path, pd, tc, op_type, op_class):
             tclist = []
         else:
             tclist = [target_tc]
-            for t in tclist:
-                error = check_testcase(t)
-                if error:
-                    ERR("Error in %s: %s" % (path, error))
-                    return []
+    for t in tclist:
+        error = check_tclist(t)
+        if error:
+            ERR("Error in %s: %s" % (path, error))
+            return []
 
     return tclist
 
@@ -348,7 +348,7 @@ if len(sys.argv) == 1:
 
 opt_all = opt_run = opt_show = opt_list = False
 report_dir = None
-opts, args = getopt(sys.argv[1:], "dvarslR:")
+opts, args = getopt(sys.argv[1:], "dvarslRS:")
 for opt, arg in opts:
     if opt == '-d':
         DEBUG = True
@@ -364,6 +364,8 @@ for opt, arg in opts:
         opt_list = True
     elif opt == '-R':
         report_dir = arg
+    elif opt == '-S':
+        dumps_dir = arg
 
 if opt_run and opt_show:
     usage("Use either -s or -r, not both.")
@@ -382,6 +384,9 @@ try:
         usage("Specify either -a or tests.")
 
     if opt_run:
+        if not os.path.isdir(dumps_dir):
+            ERR("Could not find sigrok-dumps repository at %s" % dumps_dir)
+            sys.exit(1)
         results, errors = run_tests(testlist)
         ret = errors
     elif opt_show: