From eca49ebb092bd846aed33508b613f3c582ef8587 Mon Sep 17 00:00:00 2001 From: Kostya Kortchinsky Date: Mon, 18 Sep 2017 20:31:57 +0000 Subject: [scudo] Additional modifications for Android tests support Summary: With the recent move of `android_commands` to `sanitizer_common`, some things have to be updated with regard to Scudo on Android. Notably: - `config.android` is dealt with in the common code - `config.compile_wrapper` can be prepended to allow for the use of the android commands - `SCUDO_OPTIONS` must be passed with the environment when running a test - `preinit.cpp` fails with some API levels, not sure why, I will have to dig into this later. Note that `check-scudo` is not enabled yet in the bots. It's all local testing for now until everything looks good. Reviewers: alekseyshl, vitalybuka Reviewed By: vitalybuka Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D37990 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@313561 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/scudo/lit.cfg | 2 +- test/scudo/lit.site.cfg.in | 1 - test/scudo/preinit.cpp | 4 ++++ 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'test/scudo') diff --git a/test/scudo/lit.cfg b/test/scudo/lit.cfg index d0a4cb167..bd9e6aa31 100644 --- a/test/scudo/lit.cfg +++ b/test/scudo/lit.cfg @@ -32,7 +32,7 @@ if not config.android: c_flags += ["-lrt"] def build_invocation(compile_flags): - return " " + " ".join([config.clang] + compile_flags) + " " + return " " + " ".join([config.compile_wrapper, config.clang] + compile_flags) + " " # Add clang substitutions. config.substitutions.append(("%clang_scudo ", diff --git a/test/scudo/lit.site.cfg.in b/test/scudo/lit.site.cfg.in index be0d88c10..429951875 100644 --- a/test/scudo/lit.site.cfg.in +++ b/test/scudo/lit.site.cfg.in @@ -3,7 +3,6 @@ config.name_suffix = "@SCUDO_TEST_CONFIG_SUFFIX@" config.target_arch = "@SCUDO_TEST_TARGET_ARCH@" config.target_cflags = "@SCUDO_TEST_TARGET_CFLAGS@" -config.android = "@ANDROID@" # Load common config for all compiler-rt lit tests. lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") diff --git a/test/scudo/preinit.cpp b/test/scudo/preinit.cpp index b8c01a401..f904c6c2d 100644 --- a/test/scudo/preinit.cpp +++ b/test/scudo/preinit.cpp @@ -4,6 +4,10 @@ // Verifies that calling malloc in a preinit_array function succeeds, and that // the resulting pointer can be freed at program termination. +// On some Android versions, calling mmap() from a preinit function segfaults. +// It looks like __mmap2.S ends up calling a NULL function pointer. +// UNSUPPORTED: android + #include #include #include -- cgit v1.2.3