aboutsummaryrefslogtreecommitdiff
path: root/.ci/common.sh
blob: ba000112225d5513b9f65e2a0ab18a353aaf498f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
valgrind_check() {
	(
	cd $1
	set -- valgrind-[*] valgrind-*
	case $1$2 in
		'valgrind-[*]valgrind-*')
			;;
		*)
			shift
			local err=''
			for valgrind_log in "$@"; do
				# Remove useless warning
				sed -i "$valgrind_log" \
					-e '/Warning: noted but unhandled ioctl/d' \
					-e '/could cause spurious value errors to appear/d' \
					-e '/See README_MISSING_SYSCALL_OR_IOCTL for guidance/d'
				if [ "$(stat -c %s $valgrind_log)" != "0" ]; then
					# if after removing the warning, the log still has errors, show its
					# contents and set the flag so we exit with non-zero status
					cat "$valgrind_log"
					err=1
				fi
			done
			if [ -n "$err" ]; then
				echo "Runtime errors detected"
				exit 1
			fi
			;;
	esac
	)
}

asan_check() {
	(
	cd $1
	set -- [*]san.[*] *san.*
	case $1$2 in
		'[*]san.[*]*san.*')
			;;
		*)
			shift
			cat "$@"
			echo "Runtime errors detected"
			exit 1
			;;
	esac
	)
}

set_environment() {
	local prefix="$1/usr"
	eval $($prefix/bin/luarocks path)
	export PATH="$prefix/bin:$PATH"
	export PKG_CONFIG_PATH="$prefix/lib/pkgconfig"
	export USE_BUNDLED_DEPS=OFF
}


install_prebuilt_deps() {
	# install prebuilt dependencies
	if [ ! -d /opt/neovim-deps ]; then
		cd /opt
		sudo git clone --depth=1 git://github.com/neovim/deps neovim-deps
		cd -
	fi
}

install_vroom() {
	(
	sudo pip install git+https://github.com/neovim/python-client.git
	git clone git://github.com/google/vroom
	cd vroom
	python setup.py build
	sudo python setup.py install
	)
}

tmpdir="$(pwd)/tmp"
rm -rf "$tmpdir"
mkdir -p "$tmpdir"
suppressions="$(pwd)/.valgrind.supp"

# Travis reports back that it has 32-cores via /proc/cpuinfo, but it's not
# what we really have available.  According to their documentation, it only has
# 1.5 virtual cores.
# See:
#   http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
# for more information.
MAKE_CMD="make -j2"

install_prebuilt_deps

# Pins the version of the java package installed on the Travis VMs
# and avoids a lengthy upgrade process for them.
sudo apt-mark hold oracle-java7-installer oracle-java8-installer

sudo apt-get update