[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