mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh -e
 | 
						|
 | 
						|
check_and_report() {
 | 
						|
	(
 | 
						|
	cd $tmpdir
 | 
						|
	set -- [*]san.[*] *san.*
 | 
						|
	case $1$2 in
 | 
						|
		'[*]san.[*]*san.*')
 | 
						|
			;;
 | 
						|
		*)
 | 
						|
			shift
 | 
						|
			cat "$@"
 | 
						|
			echo "Runtime errors detected"
 | 
						|
			exit 1
 | 
						|
			;;
 | 
						|
	esac
 | 
						|
	)
 | 
						|
}
 | 
						|
 | 
						|
if [ "$CC" = "clang" ]; then
 | 
						|
	# force using the version installed by 'travis-setup.sh'
 | 
						|
	export CC=/usr/bin/clang
 | 
						|
 | 
						|
	install_dir="$(pwd)/dist"
 | 
						|
	# temporary directory for writing sanitizer logs
 | 
						|
	tmpdir="$(pwd)/tmp"
 | 
						|
	rm -rf "$tmpdir"
 | 
						|
	mkdir -p "$tmpdir"
 | 
						|
 | 
						|
	# need the symbolizer path for stack traces with source information
 | 
						|
	symbolizer=/usr/bin/llvm-symbolizer-3.4
 | 
						|
 | 
						|
	export SKIP_UNITTEST=1
 | 
						|
	export SANITIZE=1
 | 
						|
	export ASAN_SYMBOLIZER_PATH=$symbolizer
 | 
						|
	export ASAN_OPTIONS="detect_leaks=1:log_path=$tmpdir/asan"
 | 
						|
	export TSAN_OPTIONS="external_symbolizer_path=$symbolizer:log_path=$tmpdir/tsan"
 | 
						|
	export UBSAN_OPTIONS="log_path=$tmpdir/ubsan" # not sure if this works
 | 
						|
 | 
						|
	make cmake CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$install_dir"
 | 
						|
	make
 | 
						|
	if ! make test; then
 | 
						|
		reset
 | 
						|
		check_and_report
 | 
						|
	fi
 | 
						|
	check_and_report
 | 
						|
	make install
 | 
						|
else
 | 
						|
	export BUSTED_OUTPUT_TYPE="TAP"
 | 
						|
	export SKIP_EXEC=1
 | 
						|
	make cmake
 | 
						|
	make unittest
 | 
						|
fi
 | 
						|
 |