mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 19:52:29 +00:00 
			
		
		
		
	[TravisCI] Don't print sanitizer suppressions by default because
that breaks Z3's regression tests.
This commit is contained in:
		
							parent
							
								
									35f6746c60
								
							
						
					
					
						commit
						ad2a0a0085
					
				
					 5 changed files with 26 additions and 3 deletions
				
			
		|  | @ -16,6 +16,7 @@ ARG PYTHON_BINDINGS | |||
| ARG PYTHON_EXECUTABLE=/usr/bin/python2.7 | ||||
| ARG RUN_SYSTEM_TESTS | ||||
| ARG RUN_UNIT_TESTS | ||||
| ARG SANITIZER_PRINT_SUPPRESSIONS | ||||
| ARG TARGET_ARCH | ||||
| ARG TEST_INSTALL | ||||
| ARG UBSAN_BUILD | ||||
|  | @ -42,6 +43,7 @@ ENV \ | |||
|   NO_SUPPRESS_OUTPUT=${NO_SUPPRESS_OUTPUT} \ | ||||
|   PYTHON_BINDINGS=${PYTHON_BINDINGS} \ | ||||
|   PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} \ | ||||
|   SANITIZER_PRINT_SUPPRESSIONS=${SANITIZER_PRINT_SUPPRESSIONS} \ | ||||
|   RUN_SYSTEM_TESTS=${RUN_SYSTEM_TESTS} \ | ||||
|   RUN_UNIT_TESTS=${RUN_UNIT_TESTS} \ | ||||
|   TARGET_ARCH=${TARGET_ARCH} \ | ||||
|  |  | |||
|  | @ -32,6 +32,7 @@ the future. | |||
| * `PYTHON_BINDINGS` - Build and test Python API bindings (`0` or `1`) | ||||
| * `RUN_SYSTEM_TESTS` - Run system tests (`0` or `1`) | ||||
| * `RUN_UNIT_TESTS` - Run unit tests (`BUILD_ONLY` or `BUILD_AND_RUN` or `SKIP`) | ||||
| * `SANITIZER_PRINT_SUPPRESSIONS` - Show ASan/UBSan suppressions (`0` or `1`) | ||||
| * `TARGET_ARCH` - Target architecture (`x86_64` or `i686`) | ||||
| * `TEST_INSTALL` - Test running `install` target (`0` or `1`) | ||||
| * `UBSAN_BUILD` - Do [UndefinedBehaviourSanitizer](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) build (`0` or `1`) | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ export NO_SUPPRESS_OUTPUT="${NO_SUPPRESS_OUTPUT:-0}" | |||
| export PYTHON_BINDINGS="${PYTHON_BINDINGS:-1}" | ||||
| export RUN_SYSTEM_TESTS="${RUN_SYSTEM_TESTS:-1}" | ||||
| export RUN_UNIT_TESTS="${RUN_UNIT_TESTS:-BUILD_AND_RUN}" | ||||
| # Don't print suppressions by default because that breaks the Z3 | ||||
| # regression tests because they don't expect them to appear in Z3's | ||||
| # output. | ||||
| export SANITIZER_PRINT_SUPPRESSIONS="${SANITIZER_PRINT_SUPPRESSIONS:-0}" | ||||
| export TARGET_ARCH="${TARGET_ARCH:-x86_64}" | ||||
| export TEST_INSTALL="${TEST_INSTALL:-1}" | ||||
| export UBSAN_BUILD="${UBSAN_BUILD:-0}" | ||||
|  |  | |||
|  | @ -7,11 +7,18 @@ | |||
| 
 | ||||
| if [ "X${ASAN_BUILD}" = "X1" ]; then | ||||
|   # Use suppression files | ||||
|   export LSAN_OPTIONS="print_suppressions=1,suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/lsan.txt" | ||||
|   export LSAN_OPTIONS="suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/lsan.txt" | ||||
|   # NOTE: If you get bad stacktraces try using `fast_unwind_on_malloc=0` | ||||
|   # NOTE: `malloc_context_size` controls size of recorded stacktrace for allocations. | ||||
|   #       If the reported stacktraces appear incomplete try increasing the value. | ||||
|   export ASAN_OPTIONS="malloc_context_size=100,print_suppressions=1,suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/asan.txt" | ||||
|   export ASAN_OPTIONS="malloc_context_size=100,suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/asan.txt" | ||||
| 
 | ||||
|   : ${SANITIZER_PRINT_SUPPRESSIONS?"SANITIZER_PRINT_SUPPRESSIONS must be specified"} | ||||
|   if [ "X${SANITIZER_PRINT_SUPPRESSIONS}" = "X1" ]; then | ||||
|     export LSAN_OPTIONS="${LSAN_OPTIONS},print_suppressions=1" | ||||
|     export ASAN_OPTIONS="${ASAN_OPTIONS},print_suppressions=1" | ||||
|   fi | ||||
| 
 | ||||
|   : ${ASAN_SYMBOLIZER_PATH?"ASAN_SYMBOLIZER_PATH must be specified"} | ||||
| 
 | ||||
|   # Run command without checking for leaks | ||||
|  | @ -61,5 +68,10 @@ if [ "X${UBSAN_BUILD}" = "X1" ]; then | |||
|   # `halt_on_error=1,abort_on_error=1` means that on the first UBSan error | ||||
|   # the program will terminate by calling `abort(). Without this UBSan will | ||||
|   # allow execution to continue. We also use a suppression file. | ||||
|   export UBSAN_OPTIONS="halt_on_error=1,abort_on_error=1,print_suppressions=1,suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/ubsan.txt" | ||||
|   export UBSAN_OPTIONS="halt_on_error=1,abort_on_error=1,suppressions=${Z3_SRC_DIR}/contrib/suppressions/sanitizers/ubsan.txt" | ||||
| 
 | ||||
|   : ${SANITIZER_PRINT_SUPPRESSIONS?"SANITIZER_PRINT_SUPPRESSIONS must be specified"} | ||||
|   if [ "X${SANITIZER_PRINT_SUPPRESSIONS}" = "X1" ]; then | ||||
|     export UBSAN_OPTIONS="${UBSAN_OPTIONS},print_suppressions=1" | ||||
|   fi | ||||
| fi | ||||
|  |  | |||
|  | @ -88,6 +88,10 @@ if [ -n "${ASAN_DSO}" ]; then | |||
|   BUILD_OPTS+=("--build-arg" "ASAN_DSO=${ASAN_DSO}") | ||||
| fi | ||||
| 
 | ||||
| if [ -n "${SANITIZER_PRINT_SUPPRESSIONS}" ]; then | ||||
|   BUILD_OPTS+=("--build-arg" "SANITIZER_PRINT_SUPPRESSIONS=${SANITIZER_PRINT_SUPPRESSIONS}") | ||||
| fi | ||||
| 
 | ||||
| if [ -n "${UBSAN_BUILD}" ]; then | ||||
|   BUILD_OPTS+=("--build-arg" "UBSAN_BUILD=${UBSAN_BUILD}") | ||||
| fi | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue