mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-20 14:20:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -x
 | |
| set -e
 | |
| set -o pipefail
 | |
| 
 | |
| : ${Z3_BUILD_DIR?"Z3_BUILD_DIR must be specified"}
 | |
| : ${Z3_BUILD_TYPE?"Z3_BUILD_TYPE must be specified"}
 | |
| : ${RUN_SYSTEM_TESTS?"RUN_SYSTEM_TESTS must be speicifed"}
 | |
| : ${PYTHON_BINDINGS?"PYTHON_BINDINGS must be specified"}
 | |
| : ${PYTHON_EXECUTABLE?"PYTHON_EXECUTABLE must be specified"}
 | |
| : ${Z3_SYSTEM_TEST_DIR?"Z3_SYSTEM_TEST_DIR must be specified"}
 | |
| : ${UBSAN_BUILD?"UBSAN_BUILD must be specified"}
 | |
| 
 | |
| if [ "X${RUN_SYSTEM_TESTS}" != "X1" ]; then
 | |
|   echo "Skipping system tests"
 | |
|   exit 0
 | |
| fi
 | |
| 
 | |
| # Sanitizer environment variables
 | |
| SCRIPT_DIR="$( cd ${BASH_SOURCE[0]%/*} ; echo $PWD )"
 | |
| source ${SCRIPT_DIR}/sanitizer_env.sh
 | |
| 
 | |
| Z3_EXE="${Z3_BUILD_DIR}/z3"
 | |
| Z3_LIB_DIR="${Z3_BUILD_DIR}"
 | |
| 
 | |
| # Set value if not already defined externally
 | |
| Z3_SYSTEM_TEST_GIT_URL="${Z3_GIT_URL:-https://github.com/Z3Prover/z3test.git}"
 | |
| 
 | |
| # Clone repo to destination
 | |
| mkdir -p "${Z3_SYSTEM_TEST_DIR}"
 | |
| git clone "${Z3_SYSTEM_TEST_GIT_URL}" "${Z3_SYSTEM_TEST_DIR}"
 | |
| cd "${Z3_SYSTEM_TEST_DIR}"
 | |
| 
 | |
| if [ -n "${Z3_SYSTEM_TEST_GIT_REVISION}" ]; then
 | |
|   # If a particular revision is requested then check it out.
 | |
|   # This is useful for reproducible builds
 | |
|   git checkout "${Z3_SYSTEM_TEST_GIT_REVISION}"
 | |
| fi
 | |
| 
 | |
| ###############################################################################
 | |
| # Run system tests
 | |
| ###############################################################################
 | |
| 
 | |
| # SMTLIBv2 tests
 | |
| ${PYTHON_EXECUTABLE} scripts/test_benchmarks.py "${Z3_EXE}" regressions/smt2
 | |
| 
 | |
| ${PYTHON_EXECUTABLE} scripts/test_benchmarks.py "${Z3_EXE}" regressions/smt2-extra
 | |
| 
 | |
| if [ "X${Z3_BUILD_TYPE}" = "XDebug" ]; then
 | |
|   ${PYTHON_EXECUTABLE} scripts/test_benchmarks.py "${Z3_EXE}" regressions/smt2-debug
 | |
| fi
 | |
| 
 | |
| if [ "X${PYTHON_BINDINGS}" = "X1" ]; then
 | |
|   # Run python binding tests
 | |
|   if [ "X${UBSAN_BUILD}" = "X1" ]; then
 | |
|     # FIXME: We need to build libz3 with a shared UBSan runtime for the bindings
 | |
|     # to work.
 | |
|     echo "FIXME: Skipping python binding tests when building with UBSan"
 | |
|   elif [ "X${ASAN_BUILD}" = "X1" ]; then
 | |
|     # FIXME: The `test_pyscripts.py` doesn't propagate LD_PRELOAD
 | |
|     # so under ASan the tests fail to run
 | |
|     # to work.
 | |
|     echo "FIXME: Skipping python binding tests when building with ASan"
 | |
|   else
 | |
|     run_non_native_binding ${PYTHON_EXECUTABLE} scripts/test_pyscripts.py "${Z3_LIB_DIR}" regressions/python/
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # FIXME: Run `scripts/test_cs.py` once it has been modified to support mono
 |