[PATCH] D70958: [compiler-rt] [test] Disable ASLR on ASAN/MSAN/TSAN tests on NetBSD
Michał Górny via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 3 05:54:38 PST 2019
mgorny created this revision.
mgorny added reviewers: krytarowski, eugenis, kcc, dvyukov.
Herald added subscribers: llvm-commits, dberris.
Herald added a project: LLVM.
Use a new %run wrapper for ASAN/MSAN/TSAN tests that calls paxctl
in order to disable ASLR on the test executables. This makes it
possible to test sanitizers on systems where ASLR is enabled by default.
https://reviews.llvm.org/D70958
Files:
compiler-rt/test/asan/lit.cfg.py
compiler-rt/test/msan/lit.cfg.py
compiler-rt/test/sanitizer_common/lit.common.cfg.py
compiler-rt/test/sanitizer_common/netbsd_commands/run_noaslr.sh
compiler-rt/test/tsan/lit.cfg.py
Index: compiler-rt/test/tsan/lit.cfg.py
===================================================================
--- compiler-rt/test/tsan/lit.cfg.py
+++ compiler-rt/test/tsan/lit.cfg.py
@@ -88,3 +88,9 @@
if not config.parallelism_group:
config.parallelism_group = 'shadow-memory'
+
+if config.host_os == 'NetBSD':
+ nb_commands_dir = os.path.join(config.compiler_rt_src_root,
+ "test", "sanitizer_common", "netbsd_commands")
+ config.substitutions.insert(0,
+ ('%run', 'sh ' + os.path.join(nb_commands_dir, 'run_noaslr.sh')))
Index: compiler-rt/test/sanitizer_common/netbsd_commands/run_noaslr.sh
===================================================================
--- /dev/null
+++ compiler-rt/test/sanitizer_common/netbsd_commands/run_noaslr.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+# PATH needed for paxctl
+PATH=${PATH}:/usr/sbin
+paxctl +a "${1}"
+exec "${@}"
Index: compiler-rt/test/sanitizer_common/lit.common.cfg.py
===================================================================
--- compiler-rt/test/sanitizer_common/lit.common.cfg.py
+++ compiler-rt/test/sanitizer_common/lit.common.cfg.py
@@ -73,3 +73,9 @@
if not config.parallelism_group:
config.parallelism_group = 'shadow-memory'
+
+if config.host_os == 'NetBSD':
+ nb_commands_dir = os.path.join(config.compiler_rt_src_root,
+ "test", "sanitizer_common", "netbsd_commands")
+ config.substitutions.insert(0,
+ ('%run', 'sh ' + os.path.join(nb_commands_dir, 'run_noaslr.sh')))
Index: compiler-rt/test/msan/lit.cfg.py
===================================================================
--- compiler-rt/test/msan/lit.cfg.py
+++ compiler-rt/test/msan/lit.cfg.py
@@ -45,3 +45,9 @@
config.substitutions.append( ('CHECK-%short-stack', 'CHECK-SHORT-STACK'))
else:
config.substitutions.append( ('CHECK-%short-stack', 'CHECK-FULL-STACK'))
+
+if config.host_os == 'NetBSD':
+ nb_commands_dir = os.path.join(config.compiler_rt_src_root,
+ "test", "sanitizer_common", "netbsd_commands")
+ config.substitutions.insert(0,
+ ('%run', 'sh ' + os.path.join(nb_commands_dir, 'run_noaslr.sh')))
Index: compiler-rt/test/asan/lit.cfg.py
===================================================================
--- compiler-rt/test/asan/lit.cfg.py
+++ compiler-rt/test/asan/lit.cfg.py
@@ -237,3 +237,9 @@
if not config.parallelism_group:
config.parallelism_group = 'shadow-memory'
+
+if config.host_os == 'NetBSD':
+ nb_commands_dir = os.path.join(config.compiler_rt_src_root,
+ "test", "sanitizer_common", "netbsd_commands")
+ config.substitutions.insert(0,
+ ('%run', 'sh ' + os.path.join(nb_commands_dir, 'run_noaslr.sh')))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70958.231887.patch
Type: text/x-patch
Size: 2734 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191203/135114c3/attachment.bin>
More information about the cfe-commits
mailing list