[Lldb-commits] [lldb] r143355 - /lldb/trunk/test/dosep.ty

Johnny Chen johnny.chen at apple.com
Mon Oct 31 12:04:07 PDT 2011


Author: johnny
Date: Mon Oct 31 14:04:07 2011
New Revision: 143355

URL: http://llvm.org/viewvc/llvm-project?rev=143355&view=rev
Log:
Add a Python script to invoke each test file under the test root using a separate process.
Example:

[11:33:09] johnny:/Volumes/data/lldb/svn/trunk/test $ ./dosep.ty -o "-v -n"
dotest.py options: -v -n
Running /Volumes/data/lldb/svn/trunk/test/dotest.py -v -n -p TestPublicAPIHeaders.py /Volumes/data/lldb/svn/trunk/test/api/check_public_api_headers
1: test_sb_api_directory (TestPublicAPIHeaders.SBDirCheckerCase)
   Test the SB API directory and make sure there's no unwanted stuff. ... ok

----------------------------------------------------------------------
Ran 1 test in 4.404s

OK
Running /Volumes/data/lldb/svn/trunk/test/dotest.py -v -n -p TestEmulations.py /Volumes/data/lldb/svn/trunk/test/arm_emulation
1: test_arm_emulations (TestEmulations.ARMEmulationTestCase) ... ok
2: test_thumb_emulations (TestEmulations.ARMEmulationTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 1.399s

OK

...

Added:
    lldb/trunk/test/dosep.ty   (with props)

Added: lldb/trunk/test/dosep.ty
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.ty?rev=143355&view=auto
==============================================================================
--- lldb/trunk/test/dosep.ty (added)
+++ lldb/trunk/test/dosep.ty Mon Oct 31 14:04:07 2011
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+
+"""
+Run the test suite using a separate process for each test file.
+"""
+
+import os, sys
+from optparse import OptionParser
+
+# Command template of the invocation of the test driver.
+template = '%s/dotest.py %s -p %s %s'
+
+def walk_and_invoke(test_root, dotest_options):
+    """Look for matched file and invoke test driver on it."""
+    for root, dirs, files in os.walk(test_root, topdown=False):
+        for name in files:
+            path = os.path.join(root, name)
+
+            # We're only interested in the test file with the "Test*.py" naming pattern.
+            if not name.startswith("Test") or not name.endswith(".py"):
+                continue
+
+            # Neither a symbolically linked file.
+            if os.path.islink(path):
+                continue
+
+            command = template % (test_root, dotest_options if dotest_options else "", name, root)
+            print "Running %s" % (command)
+            os.system(command)
+
+def main():
+    """Read the root dir and the path spec, invoke lldb-disasm.py on the file."""
+    test_root = sys.path[0]
+
+    parser = OptionParser(usage="""\
+Run lldb test suite using a separate process for each test file.
+""")
+    parser.add_option('-o', '--options',
+                      type='string', action='store',
+                      dest='dotest_options',
+                      help="""The options passed to 'dotest.py' if specified.""")
+
+    opts, args = parser.parse_args()
+    dotest_options = opts.dotest_options
+
+    print "dotest.py options:", dotest_options
+
+    walk_and_invoke(test_root, dotest_options)
+
+
+if __name__ == '__main__':
+    main()

Propchange: lldb/trunk/test/dosep.ty
------------------------------------------------------------------------------
    svn:executable = *





More information about the lldb-commits mailing list