Skip to content

Commit ffba658

Browse files
committed
Merge #170 'Use old travis image & enable Xvfb tests on OSX'
2 parents 0928f25 + df78cc3 commit ffba658

File tree

2 files changed

+38
-28
lines changed

2 files changed

+38
-28
lines changed

.travis.yml

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
group: deprecated-2017Q3
2+
13
language: cpp
24
os: linux
35
sudo: required
@@ -6,9 +8,12 @@ compiler:
68
- clang
79
- gcc
810
env:
9-
- GMOCK_VER=1.8.0
10-
- GMOCK_VER=1.7.0
11-
- GMOCK_PATH=/usr/src/gmock #1.6.0 from ubuntu trusty repo
11+
global:
12+
- DISPLAY=:99
13+
matrix:
14+
- GMOCK_VER=1.8.0
15+
- GMOCK_VER=1.7.0
16+
- GMOCK_PATH=/usr/src/gmock #1.6.0 from ubuntu trusty repo
1217
matrix:
1318
include:
1419
- os: linux

travis.sh

+30-25
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@
22
set -e #break script on non-zero exitcode from any command
33
set -x #display command being executed
44

5+
startXvfb () {
6+
# Xvfb sends SIGUSR1 to its parent when it finished startup, this causes the 'wait' below to stop waiting
7+
# Starting Xvfb hangs on OSX, that's why we do this on Linux only now
8+
if [[ "${TRAVIS_OS_NAME}" = "linux" ]]; then
9+
trap : USR1
10+
(trap '' USR1; Xvfb $DISPLAY -screen 0 640x480x8 -nolisten tcp > /dev/null 2>&1) &
11+
XVFBPID=$!
12+
wait || :
13+
trap '' USR1
14+
if ! kill -0 $XVFBPID 2> /dev/null; then
15+
echo "Xvfb failed to start" >&2
16+
exit 1
17+
fi
18+
else
19+
sudo Xvfb $DISPLAY -screen 0 640x480x8 -nolisten tcp > /dev/null 2>&1 &
20+
XVFBPID=$!
21+
sleep 5
22+
fi
23+
}
24+
25+
killXvfb () {
26+
if [ -n "${XVFBPID:-}" ]; then
27+
# Stop virtual X display server
28+
sudo kill $XVFBPID
29+
wait
30+
fi
31+
}
32+
533
CTEST_OUTPUT_ON_FAILURE=ON
634
export CTEST_OUTPUT_ON_FAILURE
735

@@ -27,26 +55,7 @@ cmake --build build
2755
cmake --build build --target test
2856
cmake --build build --target features
2957

30-
# Start virtual X display server
31-
32-
# Starting Xvfb hangs on OSX, that's why we do this on Linux only now
33-
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
34-
DISPLAY=:99
35-
export DISPLAY
36-
37-
# Xvfb sends SIGUSR1 to its parent when it finished startup, this causes the 'wait' below to stop waiting
38-
trap : USR1
39-
(trap '' USR1; Xvfb $DISPLAY -screen 0 640x480x8 -nolisten tcp > /dev/null 2>&1) &
40-
XVFBPID=$!
41-
wait || :
42-
trap '' USR1
43-
if ! kill -0 $XVFBPID 2> /dev/null; then
44-
echo "Xvfb failed to start" >&2
45-
exit 1
46-
fi
47-
else
48-
unset DISPLAY
49-
fi
58+
startXvfb # Start virtual X display server
5059

5160
for TEST in \
5261
build/examples/Calc/GTestCalculatorSteps \
@@ -83,8 +92,4 @@ if [ -f "${TEST}" ]; then
8392
wait %
8493
fi
8594

86-
if [ -n "${XVFBPID:-}" ]; then
87-
# Stop virtual X display server
88-
kill $XVFBPID
89-
wait
90-
fi
95+
killXvfb

0 commit comments

Comments
 (0)