summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.cpp7
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.dwobin1056 -> 1056 bytes
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.obin3360 -> 2968 bytes
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.dwobin1168 -> 1040 bytes
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.obin3728 -> 2992 bytes
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu1.cpp2
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu2.cpp7
-rwxr-xr-xllvm/test/DebugInfo/Inputs/split-dwarf-testbin9624 -> 9208 bytes
-rw-r--r--llvm/test/DebugInfo/Inputs/split-dwarf-test.dwobin1088 -> 1377 bytes
-rw-r--r--llvm/test/DebugInfo/llvm-symbolizer.test8
-rw-r--r--llvm/test/Other/lit-globbing.ll56
-rw-r--r--llvm/test/Unit/lit.cfg8
-rw-r--r--llvm/utils/lit/lit/Test.py16
-rw-r--r--llvm/utils/lit/lit/TestRunner.py54
-rw-r--r--llvm/utils/lit/lit/run.py20
15 files changed, 74 insertions, 104 deletions
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.cpp b/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.cpp
deleted file mode 100644
index d7361f475a2..00000000000
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-void f1();
-__attribute__((always_inline)) void f2() {
- f1();
-}
-void f3() {
- f2();
-}
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.dwo b/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.dwo
index 44bdaf4bffe..2a3bc57caa6 100644
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.dwo
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.dwo
Binary files differ
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.o b/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.o
index 540302785c2..b6993c6cae2 100644
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.o
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-addr-object-relocation.o
Binary files differ
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.dwo b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.dwo
index 94cc3e9d0f7..4df9894b089 100644
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.dwo
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.dwo
Binary files differ
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.o b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.o
index dd0cda4a8ff..aa4ab4bc76f 100644
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.o
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu.o
Binary files differ
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu1.cpp b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu1.cpp
deleted file mode 100644
index 9bed4bf8b5e..00000000000
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu1.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-extern int i;
-int i;
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu2.cpp b/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu2.cpp
deleted file mode 100644
index 1d17cf38037..00000000000
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-multiple-cu2.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-void f1();
-inline __attribute__((always_inline)) void f2() {
- f1();
-}
-void f3() {
- f2();
-}
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-test b/llvm/test/DebugInfo/Inputs/split-dwarf-test
index 0e9d4c880bb..4d6aa0cd98a 100755
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-test
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-test
Binary files differ
diff --git a/llvm/test/DebugInfo/Inputs/split-dwarf-test.dwo b/llvm/test/DebugInfo/Inputs/split-dwarf-test.dwo
index fb5eb9c0ffa..588374d7d21 100644
--- a/llvm/test/DebugInfo/Inputs/split-dwarf-test.dwo
+++ b/llvm/test/DebugInfo/Inputs/split-dwarf-test.dwo
Binary files differ
diff --git a/llvm/test/DebugInfo/llvm-symbolizer.test b/llvm/test/DebugInfo/llvm-symbolizer.test
index 49da075a451..2c64804659f 100644
--- a/llvm/test/DebugInfo/llvm-symbolizer.test
+++ b/llvm/test/DebugInfo/llvm-symbolizer.test
@@ -20,8 +20,8 @@ RUN: echo "%p/Inputs/llvm-symbolizer-dwo-test 0x400514" >> %t.input
RUN: echo "%p/Inputs/fission-ranges.elf-x86_64 0x720" >> %t.input
RUN: echo "%p/Inputs/arange-overlap.elf-x86_64 0x714" >> %t.input
RUN: cp %p/Inputs/split-dwarf-test.dwo %T
-RUN: echo "%p/Inputs/split-dwarf-test 0x400504" >> %t.input
-RUN: echo "%p/Inputs/split-dwarf-test 0x4004f0" >> %t.input
+RUN: echo "%p/Inputs/split-dwarf-test 0x4005d4" >> %t.input
+RUN: echo "%p/Inputs/split-dwarf-test 0x4005c4" >> %t.input
RUN: echo "%p/Inputs/cross-cu-inlining.x86_64-macho.o 0x17" >> %t.input
RUN: cp %p/Inputs/split-dwarf-multiple-cu.dwo %T
RUN: echo "%p/Inputs/split-dwarf-multiple-cu.o 0x4" >> %t.input
@@ -141,9 +141,9 @@ CHECK-NEXT: main
CHECK-NEXT: /tmp{{[/\\]}}cross-cu-inlining.c:11:0
CHECK: f2
-CHECK-NEXT: split-dwarf-multiple-cu2.cpp:3:3
+CHECK-NEXT: b.cpp:3:3
CHECK-NEXT: f3
-CHECK-NEXT: split-dwarf-multiple-cu2.cpp:6:0
+CHECK-NEXT: b.cpp:6:0
CHECK: f2
CHECK-NEXT: split-dwarf-addr-object-relocation.cpp:3:3
diff --git a/llvm/test/Other/lit-globbing.ll b/llvm/test/Other/lit-globbing.ll
index b60510ab8b2..5a668a90a40 100644
--- a/llvm/test/Other/lit-globbing.ll
+++ b/llvm/test/Other/lit-globbing.ll
@@ -1,28 +1,28 @@
-RUN: echo XXA > %T/XXA.txt
-RUN: echo XXB > %T/XXB.txt
-RUN: echo XXAB > %T/XXAB.txt
-
-RUN: echo %T/XXA* | FileCheck -check-prefix=STAR %s
-RUN: echo %T/'XXA'* | FileCheck -check-prefix=STAR %s
-RUN: echo %T/XX'A'* | FileCheck -check-prefix=STAR %s
-
-RUN: echo %T/XX?.txt | FileCheck -check-prefix=QUESTION %s
-RUN: echo %T/'XX'?.txt | FileCheck -check-prefix=QUESTION %s
-
-RUN: echo %T/XX??.txt | FileCheck -check-prefix=QUESTION2 %s
-RUN: echo %T/'XX'??.txt | FileCheck -check-prefix=QUESTION2 %s
-
-RUN: echo 'XX*' 'XX?.txt' 'XX??.txt' | FileCheck -check-prefix=QUOTEDARGS %s
-
-STAR-NOT: XXB.txt
-STAR: {{(XXA.txt.*XXAB.txt|XXAB.txt.*XXA.txt)}}
-
-QUESTION-NOT: XXAB.txt
-QUESTION: {{(XXA.txt.*XXB.txt|XXB.txt.*XXA.txt)}}
-
-QUESTION2-NOT: XXA.txt
-QUESTION2-NOT: XXB.txt
-QUESTION2: XXAB.txt
-
-QUOTEDARGS-NOT: .txt
-QUOTEDARGS: XX* XX?.txt XX??.txt
+RUN: echo TA > %T/TA.txt
+RUN: echo TB > %T/TB.txt
+RUN: echo TAB > %T/TAB.txt
+
+RUN: echo %T/TA* | FileCheck -check-prefix=STAR %s
+RUN: echo %T/'TA'* | FileCheck -check-prefix=STAR %s
+RUN: echo %T/T'A'* | FileCheck -check-prefix=STAR %s
+
+RUN: echo %T/T?.txt | FileCheck -check-prefix=QUESTION %s
+RUN: echo %T/'T'?.txt | FileCheck -check-prefix=QUESTION %s
+
+RUN: echo %T/T??.txt | FileCheck -check-prefix=QUESTION2 %s
+RUN: echo %T/'T'??.txt | FileCheck -check-prefix=QUESTION2 %s
+
+RUN: echo 'T*' 'T?.txt' 'T??.txt' | FileCheck -check-prefix=QUOTEDARGS %s
+
+STAR-NOT: TB.txt
+STAR: {{(TA.txt.*TAB.txt|TAB.txt.*TA.txt)}}
+
+QUESTION-NOT: TAB.txt
+QUESTION: {{(TA.txt.*TB.txt|TB.txt.*TA.txt)}}
+
+QUESTION2-NOT: TA.txt
+QUESTION2-NOT: TB.txt
+QUESTION2: TAB.txt
+
+QUOTEDARGS-NOT: .txt
+QUOTEDARGS: T* T?.txt T??.txt
diff --git a/llvm/test/Unit/lit.cfg b/llvm/test/Unit/lit.cfg
index a3c00d6d18c..dac0bf829ba 100644
--- a/llvm/test/Unit/lit.cfg
+++ b/llvm/test/Unit/lit.cfg
@@ -39,11 +39,9 @@ for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
config.environment[symbolizer] = os.environ[symbolizer]
# Win32 seeks DLLs along %PATH%.
-if sys.platform in ['win32', 'cygwin']:
- shlibdir = getattr(config, 'shlibdir', None)
- if shlibdir is not None and os.path.isdir(shlibdir):
- config.environment['PATH'] = os.path.pathsep.join((
- config.shlibdir, config.environment['PATH']))
+if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir):
+ config.environment['PATH'] = os.path.pathsep.join((
+ config.shlibdir, config.environment['PATH']))
# Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate.
if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ:
diff --git a/llvm/utils/lit/lit/Test.py b/llvm/utils/lit/lit/Test.py
index dc82670358a..1a9e3fe80fb 100644
--- a/llvm/utils/lit/lit/Test.py
+++ b/llvm/utils/lit/lit/Test.py
@@ -172,7 +172,7 @@ class TestSuite:
return os.path.join(self.source_root, *components)
def getExecPath(self, components):
- return os.path.join(self.exec_root, "Output", *components)
+ return os.path.join(self.exec_root, *components)
class Test:
"""Test - Information on a single test instance."""
@@ -222,13 +222,10 @@ class Test:
# Syntax error in an XFAIL line.
self.result.code = UNRESOLVED
self.result.output = str(e)
-
+
def getFullName(self):
return self.suite.config.name + ' :: ' + '/'.join(self.path_in_suite)
- def getTestBaseName(self):
- return self.path_in_suite[-1]
-
def getFilePath(self):
if self.file_path:
return self.file_path
@@ -237,11 +234,8 @@ class Test:
def getSourcePath(self):
return self.suite.getSourcePath(self.path_in_suite)
- def getTempFilePrefix(self):
- return self.suite.getExecPath(self.path_in_suite) + ".tmp"
-
- def getTempFileDir(self):
- return os.path.dirname(self.getTempFilePrefix())
+ def getExecPath(self):
+ return self.suite.getExecPath(self.path_in_suite)
def isExpectedToFail(self):
"""
@@ -353,7 +347,7 @@ class Test:
safe_name = self.suite.name.replace(".","-")
if safe_test_path:
- class_name = safe_name + "." + "/".join(safe_test_path)
+ class_name = safe_name + "." + "/".join(safe_test_path)
else:
class_name = safe_name + "." + safe_name
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index e72be025308..37b03cc19f8 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -123,7 +123,7 @@ class ShellCommandResult(object):
self.exitCode = exitCode
self.timeoutReached = timeoutReached
self.outputFiles = list(outputFiles)
-
+
def executeShCmd(cmd, shenv, results, timeout=0):
"""
Wrapper around _executeShCmd that handles
@@ -501,7 +501,7 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
data = None
if data is not None:
output_files.append((name, path, data))
-
+
results.append(ShellCommandResult(
cmd.commands[i], out, err, res, timeoutHelper.timeoutReached(),
output_files))
@@ -573,7 +573,7 @@ def executeScriptInternal(test, litConfig, tmpBase, commands, cwd):
else:
out += data
out += "\n"
-
+
if result.stdout.strip():
out += '# command output:\n%s\n' % (result.stdout,)
if result.stderr.strip():
@@ -690,28 +690,37 @@ def parseIntegratedTestScriptCommands(source_path, keywords):
finally:
f.close()
-def getDefaultSubstitutions(test, normalize_slashes=False):
+def getTempPaths(test):
+ """Get the temporary location, this is always relative to the test suite
+ root, not test source root."""
+ execpath = test.getExecPath()
+ execdir,execbase = os.path.split(execpath)
+ tmpDir = os.path.join(execdir, 'Output')
+ tmpBase = os.path.join(tmpDir, execbase)
+ return tmpDir, tmpBase
+
+def getDefaultSubstitutions(test, tmpDir, tmpBase, normalize_slashes=False):
sourcepath = test.getSourcePath()
sourcedir = os.path.dirname(sourcepath)
- tmpDir = test.getTempFileDir()
- tmpPrefix = test.getTempFilePrefix()
- baseName = test.getTestBaseName()
# Normalize slashes, if requested.
if normalize_slashes:
sourcepath = sourcepath.replace('\\', '/')
sourcedir = sourcedir.replace('\\', '/')
tmpDir = tmpDir.replace('\\', '/')
+ tmpBase = tmpBase.replace('\\', '/')
# We use #_MARKER_# to hide %% while we do the other substitutions.
substitutions = []
substitutions.extend([('%%', '#_MARKER_#')])
substitutions.extend(test.config.substitutions)
+ tmpName = tmpBase + '.tmp'
+ baseName = os.path.basename(tmpBase)
substitutions.extend([('%s', sourcepath),
('%S', sourcedir),
('%p', sourcedir),
('%{pathsep}', os.pathsep),
- ('%t', tmpPrefix),
+ ('%t', tmpName),
('%basename_t', baseName),
('%T', tmpDir),
('#_MARKER_#', '%')])
@@ -721,7 +730,7 @@ def getDefaultSubstitutions(test, normalize_slashes=False):
('%/s', sourcepath.replace('\\', '/')),
('%/S', sourcedir.replace('\\', '/')),
('%/p', sourcedir.replace('\\', '/')),
- ('%/t', tmpPrefix.replace('\\', '/')),
+ ('%/t', tmpBase.replace('\\', '/') + '.tmp'),
('%/T', tmpDir.replace('\\', '/')),
])
@@ -731,7 +740,7 @@ def getDefaultSubstitutions(test, normalize_slashes=False):
('%:s', re.sub(r'^(.):', r'\1', sourcepath)),
('%:S', re.sub(r'^(.):', r'\1', sourcedir)),
('%:p', re.sub(r'^(.):', r'\1', sourcedir)),
- ('%:t', re.sub(r'^(.):', r'\1', tmpPrefix)),
+ ('%:t', re.sub(r'^(.):', r'\1', tmpBase) + '.tmp'),
('%:T', re.sub(r'^(.):', r'\1', tmpDir)),
])
else:
@@ -739,7 +748,7 @@ def getDefaultSubstitutions(test, normalize_slashes=False):
('%:s', sourcepath),
('%:S', sourcedir),
('%:p', sourcedir),
- ('%:t', tmpPrefix),
+ ('%:t', tmpBase + '.tmp'),
('%:T', tmpDir),
])
return substitutions
@@ -770,7 +779,7 @@ class ParserKind(object):
TAG: A keyword taking no value. Ex 'END.'
COMMAND: A keyword taking a list of shell commands. Ex 'RUN:'
LIST: A keyword taking a comma-separated list of values.
- BOOLEAN_EXPR: A keyword taking a comma-separated list of
+ BOOLEAN_EXPR: A keyword taking a comma-separated list of
boolean expressions. Ex 'XFAIL:'
CUSTOM: A keyword with custom parsing semantics.
"""
@@ -942,14 +951,14 @@ def parseIntegratedTestScript(test, additional_parsers=[],
IntegratedTestKeywordParser('REQUIRES:', ParserKind.BOOLEAN_EXPR,
initial_value=test.requires),
IntegratedTestKeywordParser('REQUIRES-ANY:', ParserKind.CUSTOM,
- IntegratedTestKeywordParser._handleRequiresAny,
- initial_value=test.requires),
+ IntegratedTestKeywordParser._handleRequiresAny,
+ initial_value=test.requires),
IntegratedTestKeywordParser('UNSUPPORTED:', ParserKind.BOOLEAN_EXPR,
initial_value=test.unsupported),
IntegratedTestKeywordParser('END.', ParserKind.TAG)
]
keyword_parsers = {p.keyword: p for p in builtin_parsers}
-
+
# Install user-defined additional parsers.
for parser in additional_parsers:
if not isinstance(parser, IntegratedTestKeywordParser):
@@ -959,7 +968,7 @@ def parseIntegratedTestScript(test, additional_parsers=[],
raise ValueError("Parser for keyword '%s' already exists"
% parser.keyword)
keyword_parsers[parser.keyword] = parser
-
+
# Collect the test lines from the script.
sourcepath = test.getSourcePath()
for line_number, command_type, ln in \
@@ -1005,8 +1014,12 @@ def parseIntegratedTestScript(test, additional_parsers=[],
return script
+
def _runShTest(test, litConfig, useExternalSh, script, tmpBase):
- execdir = os.path.dirname(test.getTempFileDir())
+ # Create the output directory if it does not already exist.
+ lit.util.mkdir_p(os.path.dirname(tmpBase))
+
+ execdir = os.path.dirname(test.getExecPath())
if useExternalSh:
res = executeScript(test, litConfig, tmpBase, script, execdir)
else:
@@ -1050,8 +1063,10 @@ def executeShTest(test, litConfig, useExternalSh,
return script
if litConfig.noExecute:
return lit.Test.Result(Test.PASS)
+
+ tmpDir, tmpBase = getTempPaths(test)
substitutions = list(extra_substitutions)
- substitutions += getDefaultSubstitutions(test,
+ substitutions += getDefaultSubstitutions(test, tmpDir, tmpBase,
normalize_slashes=useExternalSh)
script = applySubstitutions(script, substitutions)
@@ -1060,8 +1075,7 @@ def executeShTest(test, litConfig, useExternalSh,
if hasattr(test.config, 'test_retry_attempts'):
attempts += test.config.test_retry_attempts
for i in range(attempts):
- res = _runShTest(test, litConfig, useExternalSh, script,
- test.getTempFilePrefix())
+ res = _runShTest(test, litConfig, useExternalSh, script, tmpBase)
if res.code != Test.FAIL:
break
# If we had to run the test more than once, count it as a flaky pass. These
diff --git a/llvm/utils/lit/lit/run.py b/llvm/utils/lit/lit/run.py
index bdaf1415a1c..1290c142c83 100644
--- a/llvm/utils/lit/lit/run.py
+++ b/llvm/utils/lit/lit/run.py
@@ -1,5 +1,4 @@
import os
-import shutil
import sys
import threading
import time
@@ -75,25 +74,6 @@ class Run(object):
if not self.tests or jobs == 0:
return
- # Create fresh output directories for each test we're going to run.
- # This guarantees that test runs will not remnants of previous test
- # runs' output.
- clean_paths = set()
- for test in self.tests:
- clean_paths.add(os.path.normpath(test.getTempFileDir()))
- clean_paths = list(clean_paths)
- # Sort by number of path components, to ensure that parent directories
- # get deleted and re-created before child directories.
- clean_paths.sort(key=lambda x: len(x.split(os.sep)))
- for base in clean_paths:
- if os.path.exists(base):
- if not os.path.islink(base) and os.path.isdir(base):
- shutil.rmtree(base, True)
- else:
- os.unlink(os.path)
- if not os.path.exists(base):
- lit.util.mkdir_p(base)
-
# Set up semaphores to limit parallelism of certain classes of tests.
# For example, some ASan tests require lots of virtual memory and run
# faster with less parallelism on OS X.
OpenPOWER on IntegriCloud