2
2
set -e # break script on non-zero exitcode from any command
3
3
set -x # display command being executed
4
4
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
+
5
33
CTEST_OUTPUT_ON_FAILURE=ON
6
34
export CTEST_OUTPUT_ON_FAILURE
7
35
@@ -27,26 +55,7 @@ cmake --build build
27
55
cmake --build build --target test
28
56
cmake --build build --target features
29
57
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
50
59
51
60
for TEST in \
52
61
build/examples/Calc/GTestCalculatorSteps \
@@ -83,8 +92,4 @@ if [ -f "${TEST}" ]; then
83
92
wait %
84
93
fi
85
94
86
- if [ -n " ${XVFBPID:- } " ]; then
87
- # Stop virtual X display server
88
- kill $XVFBPID
89
- wait
90
- fi
95
+ killXvfb
0 commit comments