[asterisk-commits] wdoekes: testsuite/asterisk/trunk r5650 - /asterisk/trunk/runtests.py

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sun Sep 28 02:25:19 CDT 2014


Author: wdoekes
Date: Sun Sep 28 02:25:02 2014
New Revision: 5650

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5650
Log:
Allow multiple -t options to be passed to runtests.py.

Review: https://reviewboard.asterisk.org/r/4012/

Modified:
    asterisk/trunk/runtests.py

Modified: asterisk/trunk/runtests.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/runtests.py?view=diff&rev=5650&r1=5649&r2=5650
==============================================================================
--- asterisk/trunk/runtests.py (original)
+++ asterisk/trunk/runtests.py Sun Sep 28 02:25:02 2014
@@ -15,7 +15,6 @@
 import optparse
 import time
 import yaml
-import socket
 import shutil
 import xml.dom
 import random
@@ -24,14 +23,13 @@
 
 from asterisk.version import AsteriskVersion
 from asterisk.asterisk import Asterisk
-from asterisk.test_config import Dependency, TestConfig
-from asterisk import test_suite_utils
+from asterisk.test_config import TestConfig
 
 TESTS_CONFIG = "tests.yaml"
 TEST_RESULTS = "asterisk-test-suite-report.xml"
 
+
 class TestRun:
-
     def __init__(self, test_name, ast_version, options, global_config=None):
         self.can_run = False
         self.did_run = False
@@ -224,7 +222,9 @@
                 path = "%s/%s" % (test_dir, t[val])
                 if val == "test":
                     # If we specified a subset of tests, there's no point loading the others.
-                    if self.options.test and not (path + '/').startswith(self.options.test):
+                    if (self.options.tests and
+                            not any((path + '/').startswith(test)
+                                    for test in self.options.tests)):
                         continue
 
                     tests.append(TestRun(path, ast_version, self.options, self.global_config))
@@ -236,9 +236,9 @@
     def list_tags(self):
         def chunks(l, n):
             for i in xrange(0, len(l), n):
-                yield l[i:i+n]
-
-        tags= set()
+                yield l[i:(i + n)]
+
+        tags = set()
         for test in self.tests:
             tags = tags.union(test.test_config.tags)
         tags = list(set(tags))
@@ -259,11 +259,11 @@
         for t in self.tests:
             print "%.3d) %s" % (i, t.test_config.test_name)
             print "      --> Summary: %s" % t.test_config.summary
-            print "      --> Minimum Version: %s (%s)" % \
-                         (str(t.test_config.minversion), str(t.test_config.minversion_check))
+            print ("      --> Minimum Version: %s (%s)" %
+                   (t.test_config.minversion, t.test_config.minversion_check))
             if t.test_config.maxversion is not None:
-                print "      --> Maximum Version: %s (%s)" % \
-                             (str(t.test_config.maxversion), str(t.test_config.maxversion_check))
+                print ("      --> Maximum Version: %s (%s)" %
+                       (t.test_config.maxversion, t.test_config.maxversion_check))
             if t.test_config.features:
                 print "      --> Features:"
                 for feature_name in t.test_config.features:
@@ -306,7 +306,7 @@
                     print "--- --> Dependency: %s - %s" % (d.name, str(d.met))
                 print
                 continue
-            if self.global_config != None:
+            if self.global_config is not None:
                 exclude = False
                 for excluded in self.global_config.excluded_tests:
                     if excluded in t.test_name:
@@ -360,12 +360,11 @@
         char_list = []
         for r in bad_chars:
             # we do +1 here to include the last item
-            for i in range(r[0], r[1]+1):
+            for i in range(r[0], r[1] + 1):
                 char_list.append(chr(i))
         return data.translate(None, ''.join(char_list))
 
     def write_results_xml(self, fn, stdout=False):
-        testOutput = ""
         try:
             f = open(TEST_RESULTS, "w")
         except IOError:
@@ -420,9 +419,10 @@
     parser.add_option("-l", "--list-tests", action="store_true",
             dest="list_tests", default=False,
             help="List tests instead of running them.")
-    parser.add_option("-t", "--test",
-            dest="test",
-            help="Run a single specified test instead of all tests.")
+    parser.add_option("-t", "--test", action="append", default=[],
+            dest="tests",
+            help=("Run a single specified test (directory) instead of all tests.  "
+                  "May be specified more than once."))
     parser.add_option("-g", "--tag", action="append",
             dest="tags",
             help="Specify one or more tags to select a subset of tests.")
@@ -439,9 +439,10 @@
 
     ast_version = AsteriskVersion(options.version)
 
-    # Ensure that there's a trailing '/' in the test specified with -t
-    if options.test and options.test[-1] != '/':
-        options.test += '/'
+    # Ensure that there's a trailing '/' in the tests specified with -t
+    for i, test in enumerate(options.tests):
+        if not test.endswith('/'):
+            options.tests[i] = test + '/'
 
     test_suite = TestSuite(ast_version, options)
 
@@ -460,7 +461,8 @@
 
     test_suite.write_results_xml(TEST_RESULTS, stdout=True)
 
-    if not options.test:
+    # If exactly one test was requested, then skip the summary.
+    if len(test_suite.tests) != 1:
         print "\n=== TEST RESULTS ===\n"
         print "PATH: %s\n" % os.getenv("PATH")
         for t in test_suite.tests:




More information about the asterisk-commits mailing list