Force lit to execute the ASan and TSan tests on iOS devices

sequentially.

The current implementation of commands in
`test/sanitizer_common/ios_commands/` for iOS devices cannot be executed
in parallel which results in the ASan and TSan tests failing when
executed in parallel by lit which was the default behaviour.

We now force the ASan and TSan tests to be a new parallelism group named
`darwin-ios-device-sanitizer` which allows only one test to be run at a
time.  We also emit a warning informing the user that tests are being
run sequentially.

This only applies if the target is an iOS device.

Differential Revision: https://reviews.llvm.org/D42156

llvm-svn: 323026
This commit is contained in:
Dan Liew 2018-01-20 02:07:30 +00:00
parent 0f0a428738
commit 3fc243aea5
3 changed files with 18 additions and 4 deletions

View File

@ -212,5 +212,8 @@ else:
if config.host_os not in ['Linux', 'Darwin', 'FreeBSD', 'SunOS', 'Windows']:
config.unsupported = True
if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]:
config.parallelism_group = "darwin-64bit-sanitizer"
if config.host_os == 'Darwin':
if config.target_arch in ["x86_64", "x86_64h"]:
config.parallelism_group = "darwin-64bit-sanitizer"
elif config.ios and not config.iossim:
config.parallelism_group = "darwin-ios-device-sanitizer"

View File

@ -291,6 +291,14 @@ if platform.system() == 'Windows':
if platform.system() == 'Darwin':
lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3
# The current implementation of the tools in sanitizer_common/ios_comamnds
# do not support parallel execution so force sequential execution of the
# tests on iOS devices.
if config.host_os == 'Darwin' and config.ios and not config.iossim:
lit_config.warning("iOS device test cases being run sequentially")
lit_config.parallelism_groups["darwin-ios-device-sanitizer"] = 1
if config.host_os == 'Darwin':
config.substitutions.append( ("%ld_flags_rpath_exe", '-Wl,-rpath,@executable_path/ %dynamiclib') )
config.substitutions.append( ("%ld_flags_rpath_so", '-install_name @rpath/`basename %dynamiclib`') )

View File

@ -85,5 +85,8 @@ if config.host_os not in ['FreeBSD', 'Linux', 'Darwin', 'NetBSD']:
if config.android:
config.unsupported = True
if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]:
config.parallelism_group = "darwin-64bit-sanitizer"
if config.host_os == 'Darwin':
if config.target_arch in ["x86_64", "x86_64h"]:
config.parallelism_group = "darwin-64bit-sanitizer"
elif config.ios and not config.iossim:
config.parallelism_group = "darwin-ios-device-sanitizer"