rupprecht created this revision. rupprecht added a reviewer: labath. Herald added a reviewer: EricWF. Herald added subscribers: lldb-commits, ldionne. Herald added a project: LLDB.
The test logic for running libc++ tests only looks to see if `/usr/include/c++/v1` exists. This adds a fallback for including libc++ tests as long as `$(CC) -stdlib=libc++` works. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D71319 Files: lldb/packages/Python/lldbsuite/test/dotest.py Index: lldb/packages/Python/lldbsuite/test/dotest.py =================================================================== --- lldb/packages/Python/lldbsuite/test/dotest.py +++ lldb/packages/Python/lldbsuite/test/dotest.py @@ -32,6 +32,7 @@ import signal import subprocess import sys +import tempfile # Third-party modules import six @@ -850,9 +851,15 @@ return True, "libc++ always present" if platform == "linux": - if not os.path.isdir("/usr/include/c++/v1"): - return False, "Unable to find libc++ installation" - return True, "Headers found, let's hope they work" + if os.path.isdir("/usr/include/c++/v1"): + return True, "Headers found, let's hope they work" + with tempfile.NamedTemporaryFile() as f: + cmd = [configuration.compiler, "-xc++", "-stdlib=libc++", "-o", f.name, "-"] + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + _, stderr = p.communicate("int main() {}") + if not p.returncode: + return True, "Compiling with -stdlib=libc++ works" + return False, "Compiling with -stdlib=libc++ fails with the error: %s" % stderr return False, "Don't know how to build with libc++ on %s" % platform
Index: lldb/packages/Python/lldbsuite/test/dotest.py =================================================================== --- lldb/packages/Python/lldbsuite/test/dotest.py +++ lldb/packages/Python/lldbsuite/test/dotest.py @@ -32,6 +32,7 @@ import signal import subprocess import sys +import tempfile # Third-party modules import six @@ -850,9 +851,15 @@ return True, "libc++ always present" if platform == "linux": - if not os.path.isdir("/usr/include/c++/v1"): - return False, "Unable to find libc++ installation" - return True, "Headers found, let's hope they work" + if os.path.isdir("/usr/include/c++/v1"): + return True, "Headers found, let's hope they work" + with tempfile.NamedTemporaryFile() as f: + cmd = [configuration.compiler, "-xc++", "-stdlib=libc++", "-o", f.name, "-"] + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + _, stderr = p.communicate("int main() {}") + if not p.returncode: + return True, "Compiling with -stdlib=libc++ works" + return False, "Compiling with -stdlib=libc++ fails with the error: %s" % stderr return False, "Don't know how to build with libc++ on %s" % platform
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits