[llvm-commits] [llvm] r167971 - in /llvm/trunk: docs/TestingGuide.html utils/lit/lit/TestRunner.py
Alexander Kornienko
alexfh at google.com
Wed Nov 14 12:26:19 PST 2012
Author: alexfh
Date: Wed Nov 14 14:26:19 2012
New Revision: 167971
URL: http://llvm.org/viewvc/llvm-project?rev=167971&view=rev
Log:
Added %(line), %(line+<number>), %(line-<number>) substitutions to lit
Modified:
llvm/trunk/docs/TestingGuide.html
llvm/trunk/utils/lit/lit/TestRunner.py
Modified: llvm/trunk/docs/TestingGuide.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TestingGuide.html?rev=167971&r1=167970&r2=167971&view=diff
==============================================================================
--- llvm/trunk/docs/TestingGuide.html (original)
+++ llvm/trunk/docs/TestingGuide.html Wed Nov 14 14:26:19 2012
@@ -723,6 +723,11 @@
<dd>The full path to the test case's source. This is suitable for passing
on the command line as the input to an llvm tool.</dd>
+ <dt><b>%(line), %(line+<i>number</i>), %(line-<i>number</i>)</b></dt>
+ <dd>The number of the line where this variable is used, with an optional
+ integer offset. This can be used in tests with multiple RUN: lines, which
+ reference test file's line numbers.</dd>
+
<dt><b>$srcdir</b></dt>
<dd>The source directory from where the "<tt>make check</tt>" was run.</dd>
Modified: llvm/trunk/utils/lit/lit/TestRunner.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=167971&r1=167970&r2=167971&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/TestRunner.py (original)
+++ llvm/trunk/utils/lit/lit/TestRunner.py Wed Nov 14 14:26:19 2012
@@ -432,7 +432,9 @@
script = []
xfails = []
requires = []
+ line_number = 0
for ln in open(sourcepath):
+ line_number += 1
if 'RUN:' in ln:
# Isolate the command to run.
index = ln.index('RUN:')
@@ -441,6 +443,15 @@
# Trim trailing whitespace.
ln = ln.rstrip()
+ # Substitute line number expressions
+ ln = re.sub('%\(line\)', str(line_number), ln)
+ def replace_line_number(match):
+ if match.group(1) == '+':
+ return str(line_number + int(match.group(2)))
+ if match.group(1) == '-':
+ return str(line_number - int(match.group(2)))
+ ln = re.sub('%\(line *([\+-]) *(\d+)\)', replace_line_number, ln)
+
# Collapse lines with trailing '\\'.
if script and script[-1][-1] == '\\':
script[-1] = script[-1][:-1] + ln
More information about the llvm-commits
mailing list