[PATCH] D11960: [windows] Always use the lit shell on Windows, even if bash is present

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 11 14:17:43 PDT 2015


rnk created this revision.
rnk added reviewers: samsonov, pcc.
rnk added a subscriber: llvm-commits.

This is consistent with LLVM and Clang. The lit shell isn't a complete
bash implementation, but its behavior is more easily reproducible.  This
fixes some ubsan test failures.

I marked the remaining two tests as unsupported with REQUIRES: lines.

http://reviews.llvm.org/D11960

Files:
  test/asan/lit.cfg
  test/lit.common.cfg
  test/ubsan/TestCases/Misc/coverage-levels.cc
  test/ubsan/TestCases/TypeCheck/misaligned.cpp

Index: test/ubsan/TestCases/TypeCheck/misaligned.cpp
===================================================================
--- test/ubsan/TestCases/TypeCheck/misaligned.cpp
+++ test/ubsan/TestCases/TypeCheck/misaligned.cpp
@@ -1,3 +1,7 @@
+// FIXME: This test currently fails on Windows because we use the MSVC linker,
+// which throws away DWARF debug info.
+// REQUIRES: posix
+//
 // RUN: %clangxx -fsanitize=alignment -g %s -O3 -o %t
 // RUN: %run %t l0 && %run %t s0 && %run %t r0 && %run %t m0 && %run %t f0 && %run %t n0 && %run %t u0
 // RUN: %run %t l1 2>&1 | FileCheck %s --check-prefix=CHECK-LOAD --strict-whitespace
Index: test/ubsan/TestCases/Misc/coverage-levels.cc
===================================================================
--- test/ubsan/TestCases/Misc/coverage-levels.cc
+++ test/ubsan/TestCases/Misc/coverage-levels.cc
@@ -1,5 +1,8 @@
 // Test various levels of coverage
 //
+// FIXME: Port the environment variable logic below for the lit shell.
+// REQUIRES: shell
+//
 // RUN: mkdir -p %T/coverage-levels
 // RUN: OPT=coverage=1:verbosity=1:coverage_dir=%T/coverage-levels
 // RUN: %clangxx -fsanitize=shift                        -DGOOD_SHIFT=1 -O1 -fsanitize-coverage=func  %s -o %t
Index: test/lit.common.cfg
===================================================================
--- test/lit.common.cfg
+++ test/lit.common.cfg
@@ -11,10 +11,11 @@
 import lit.formats
 import lit.util
 
-# Setup test format
-execute_external = (platform.system() != 'Windows'
-                    or lit_config.getBashPath() not in [None, ""])
+# Setup test format. Use bash on Unix and the lit shell on Windows.
+execute_external = (not sys.platform in ['win32'])
 config.test_format = lit.formats.ShTest(execute_external)
+if execute_external:
+  config.available_features.add('shell')
 
 # Setup clang binary.
 compiler_path = getattr(config, 'clang', None)
@@ -110,6 +111,12 @@
 if config.has_lld:
   config.available_features.add('lld')
 
+# Some tests only work on Windows and some only work on posix.
+if platform.system() == 'Windows':
+  config.available_features.add('windows')
+else:
+  config.available_features.add('posix')
+
 lit.util.usePlatformSdkOnDarwin(config, lit_config)
 
 def is_darwin_lto_supported():
Index: test/asan/lit.cfg
===================================================================
--- test/asan/lit.cfg
+++ test/asan/lit.cfg
@@ -35,10 +35,6 @@
   # much slower. Let's override this and run lit tests with 'abort_on_error=0'.
   config.environment['ASAN_OPTIONS'] = 'abort_on_error=0'
 
-# testFormat: The test format to use to interpret tests.
-external_bash = (not sys.platform in ['win32'])
-config.test_format = lit.formats.ShTest(external_bash)
-
 # Setup source root.
 config.test_source_root = os.path.dirname(__file__)
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11960.31862.patch
Type: text/x-patch
Size: 2778 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150811/6df613a6/attachment.bin>


More information about the llvm-commits mailing list