From 08639983ded4250c18614c62450e70ba653aac4c Mon Sep 17 00:00:00 2001 From: Alexander Kornienko Date: Wed, 14 Nov 2012 20:26:19 +0000 Subject: Added %(line), %(line+), %(line-) substitutions to lit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167971 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/TestingGuide.html | 5 +++++ utils/lit/lit/TestRunner.py | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/docs/TestingGuide.html b/docs/TestingGuide.html index d90c8ad1c3..1be7551122 100644 --- a/docs/TestingGuide.html +++ b/docs/TestingGuide.html @@ -723,6 +723,11 @@ define two separate CHECK lines that match on the same line.
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.
+
%(line), %(line+number), %(line-number)
+
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.
+
$srcdir
The source directory from where the "make check" was run.
diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index 0c1911ed35..e339652f83 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -432,7 +432,9 @@ def parseIntegratedTestScript(test, normalize_slashes=False, 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 @@ def parseIntegratedTestScript(test, normalize_slashes=False, # 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 -- cgit v1.2.3