[PATCH] D61265: [lit][tests]Add feature libcxx-used and use it in llvm-*-fuzzer tests

Xing Xue via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 29 08:40:35 PDT 2019


xingxue created this revision.
xingxue added reviewers: hubert.reinterpretcast, dberris, amyk, jasonliu.
xingxue added a project: LLVM.
Herald added a reviewer: EricWF.
Herald added subscribers: llvm-commits, jsji, javed.absar.

When a LLVM binary such as `llvm-*-fuzzer` is built with `libc++`, it has dependency on `libc++`. The path to find shared libraries specified in `llvm-*-fuzzer` is relative. As a result, these binaries cannot be copied to an arbitrary directory and launched from there. Changes in this patch add a `LIT` feature to indicate that `libc++` is used to build and, based on the feature exclude test cases that test by copying `llvm-*-fuzzer` binaries to a directory.

The changes in this patch use macro LLVM_LIBCXX_USED introduced in patch https://reviews.llvm.org/D61016. D61016 <https://reviews.llvm.org/D61016> should be committed before this patch.


Repository:
  rL LLVM

https://reviews.llvm.org/D61265

Files:
  llvm/test/lit.cfg.py
  llvm/test/lit.site.cfg.py.in
  llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
  llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
  llvm/test/tools/llvm-opt-fuzzer/exec-options.ll


Index: llvm/test/tools/llvm-opt-fuzzer/exec-options.ll
===================================================================
--- llvm/test/tools/llvm-opt-fuzzer/exec-options.ll
+++ llvm/test/tools/llvm-opt-fuzzer/exec-options.ll
@@ -3,6 +3,9 @@
 ; REQUIRES: static-libs
 ; REQUIRES: x86-registered-target
 
+; The above also applies if the binary is built with libc++.
+; UNSUPPORTED: libcxx-used
+
 ; This test is really flaky on Windows. On Windows, executables and DLLs cannot
 ; be deleted or written while they are loaded. The OS unlocks the file some
 ; time after the process terminates, so if 'rm' runs too quickly, it will fail
Index: llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
===================================================================
--- llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
+++ llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
@@ -2,6 +2,9 @@
 ; without copying the whole lib dir or polluting the build dir.
 ; REQUIRES: static-libs
 
+; The above also applies if the binary is built with libc++.
+; UNSUPPORTED: libcxx-used
+
 ; RUN: echo > %t.input
 
 ; RUN: cp llvm-isel-fuzzer %t.bin--gisel
Index: llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
===================================================================
--- llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
+++ llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
@@ -3,6 +3,9 @@
 ; REQUIRES: static-libs
 ; REQUIRES: aarch64-registered-target
 
+; The above also applies if the binary is built with libc++.
+; UNSUPPORTED: libcxx-used
+
 ; RUN: echo > %t.input
 
 ; RUN: cp llvm-isel-fuzzer %t.bin--aarch64
Index: llvm/test/lit.site.cfg.py.in
===================================================================
--- llvm/test/lit.site.cfg.py.in
+++ llvm/test/lit.site.cfg.py.in
@@ -44,6 +44,7 @@
 config.llvm_host_triple = '@LLVM_HOST_TRIPLE@'
 config.host_arch = "@HOST_ARCH@"
 config.have_opt_viewer_modules = @LLVM_HAVE_OPT_VIEWER_MODULES@
+config.libcxx_used = @LLVM_LIBCXX_USED@
 
 # Support substitution of the tools_dir with user parameters. This is
 # used when we can't determine the tool dir at configuration time.
Index: llvm/test/lit.cfg.py
===================================================================
--- llvm/test/lit.cfg.py
+++ llvm/test/lit.cfg.py
@@ -226,6 +226,9 @@
 if have_cxx_shared_library():
     config.available_features.add('cxx-shared-library')
 
+if config.libcxx_used:
+    config.available_features.add('libcxx-used')
+
 # Direct object generation
 if not 'hexagon' in config.target_triple:
     config.available_features.add('object-emission')


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61265.197116.patch
Type: text/x-patch
Size: 2629 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190429/1a7b7baa/attachment.bin>


More information about the llvm-commits mailing list