[Lldb-commits] [lldb] r148766 - /lldb/trunk/test/redo.py
Johnny Chen
johnny.chen at apple.com
Mon Jan 23 17:53:02 PST 2012
Author: johnny
Date: Mon Jan 23 19:53:02 2012
New Revision: 148766
URL: http://llvm.org/viewvc/llvm-project?rev=148766&view=rev
Log:
Modify redo.py script so that if sessin_dir is left unspecified, it uses the heuristic
to find the possible session directories with names starting with %Y-%m-%d- (for example,
2012-01-23-) and employs the one with the latest timestamp. For example:
johnny:/Volumes/data/lldb/svn/latest/test $ ./redo.py
Using session dir path: /Volumes/data/lldb/svn/latest/test/2012-01-23-11_28_30
adding filterspec: DisassembleRawDataTestCase.test_disassemble_raw_data
Running ./dotest.py -C clang -v -t -f DisassembleRawDataTestCase.test_disassemble_raw_data
LLDB build dir: /Volumes/data/lldb/svn/latest/build/Debug
LLDB-108
Path: /Volumes/data/lldb/svn/latest
URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
Repository Root: https://johnny@llvm.org/svn/llvm-project
Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
Revision: 148710
Node Kind: directory
Schedule: normal
Last Changed Author: gclayton
Last Changed Rev: 148650
Last Changed Date: 2012-01-21 18:55:08 -0800 (Sat, 21 Jan 2012)
Session logs for test failures/errors/unexpected successes will go into directory '2012-01-23-17_04_48'
Command invoked: python ./dotest.py -C clang -v -t -f DisassembleRawDataTestCase.test_disassemble_raw_data
Configuration: compiler=clang
----------------------------------------------------------------------
Collected 1 test
Change dir to: /Volumes/data/lldb/svn/latest/test/python_api/disassemble-raw-data
1: test_disassemble_raw_data (TestDisassembleRawData.DisassembleRawDataTestCase)
Test disassembling raw bytes with the API. ...
Raw bytes: ['0x48', '0x89', '0xe5']
Disassembled: movq %rsp, %rbp
ok
Restore dir to: /Volumes/data/lldb/svn/latest/test
----------------------------------------------------------------------
Ran 1 test in 0.233s
OK
Modified:
lldb/trunk/test/redo.py
Modified: lldb/trunk/test/redo.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/redo.py?rev=148766&r1=148765&r2=148766&view=diff
==============================================================================
--- lldb/trunk/test/redo.py (original)
+++ lldb/trunk/test/redo.py Mon Jan 23 19:53:02 2012
@@ -15,7 +15,7 @@
for help.
"""
-import os, sys
+import os, sys, datetime
import re
# If True, redo with no '-t' option for the test driver.
@@ -36,13 +36,17 @@
def usage():
print"""\
-Usage: redo.py [-n] session_dir
+Usage: redo.py [-n] [session_dir]
where options:
-n : when running the tests, do not turn on trace mode, i.e, no '-t' option
is passed to the test driver (this will run the tests faster)
and session_dir specifies the session directory which contains previously
-recorded session infos for all the test cases which either failed or errored."""
+recorded session infos for all the test cases which either failed or errored.
+
+If sessin_dir is left unspecified, this script uses the heuristic to find the
+possible session directories with names starting with %Y-%m-%d- (for example,
+2012-01-23-) and employs the one with the latest timestamp."""
sys.exit(0)
def where(session_dir, test_dir):
@@ -97,7 +101,12 @@
global no_trace
global redo_specs
- if len(sys.argv) < 2 or len(sys.argv) > 3:
+ test_dir = sys.path[0]
+ if not test_dir.endswith('test'):
+ print "This script expects to reside in lldb's test directory."
+ sys.exit(-1)
+
+ if len(sys.argv) > 3:
usage()
index = 1
@@ -116,20 +125,29 @@
no_trace = True
index += 1
- session_dir = sys.argv[index]
-
- test_dir = sys.path[0]
- if not test_dir.endswith('test'):
- print "This script expects to reside in lldb's test directory."
- sys.exit(-1)
+ if index < len(sys.argv):
+ # Get the specified session directory.
+ session_dir = sys.argv[index]
+ else:
+ # Use heuristic to find the latest session directory.
+ name = datetime.datetime.now().strftime("%Y-%m-%d-")
+ dirs = [d for d in os.listdir(os.getcwd()) if d.startswith(name)]
+ session_dir = max(dirs, key=os.path.getmtime)
+ if not session_dir or not os.path.exists(session_dir):
+ print "No default session directory found, please specify it explicitly."
+ usage()
#print "The test directory:", test_dir
session_dir_path = where(session_dir, test_dir)
- #print "Session dir path:", session_dir_path
+ print "Using session dir path:", session_dir_path
os.chdir(test_dir)
os.path.walk(session_dir_path, redo, ".log")
+ if not redo_specs:
+ print "No failures/errors recorded within the session directory, please specify a different session directory."
+ usage()
+
filters = " -f ".join(redo_specs)
compilers = (" -C %s" % "^".join(comp_specs)) if comp_specs else None
archs = (" -A %s" % "^".join(arch_specs)) if arch_specs else None
More information about the lldb-commits
mailing list