4 # .travis-functions.sh:
5 # - helper functions to be sourced from .travis.yml
6 # - designed to respect travis' environment but testing locally is possible
9 if [ ! -f "configure.ac" ]; then
10 echo ".travis-functions.sh must be sourced from source dir" >&2
14 ## some config settings
15 # travis docs say we get 1.5 CPUs
17 DUMP_CONFIG_LOG
="short"
18 export TS_OPT_parsable
="yes"
20 # workaround ugly warning on travis OSX,
21 # see https://github.com/direnv/direnv/issues/210
22 shell_session_update
() { :; }
29 .
/configure
"$@" $OSX_CONFOPTS
31 if [ "$DUMP_CONFIG_LOG" = "short" ]; then
32 grep -B1 -A10000 "^## Output variables" config.log |
grep -v "_FALSE="
33 elif [ "$DUMP_CONFIG_LOG" = "full" ]; then
39 # TODO: integrate checkusage into our regular tests and remove this function
40 function make_checkusage
43 if ! tmp
=$
($MAKE checkusage
2>&1) ||
test -n "$tmp"; then
45 echo "make checkusage failed" >&2
50 function check_nonroot
52 local make_opts
="$MAKE_CHECK_OPTS --show-diff"
54 --disable-use-tty-group \
55 --disable-makeinstall-chown \
56 --enable-all-programs"
58 if [ "$TRAVIS_OS_NAME" != "osx" ]; then
59 conf_opts
="$conf_opts --enable-asan"
60 make_opts
="$make_opts --memcheck-asan"
63 xconfigure
$conf_opts ||
return
68 # TS_OPTS= overwrites default from tests/Makemodule.am
69 $MAKE check TS_OPTS
="$make_opts" ||
return
71 make_checkusage ||
return
73 $MAKE install DESTDIR
=/tmp
/dest ||
return
78 local make_opts
="$MAKE_CHECK_OPTS --show-diff"
79 local conf_opts
="--enable-all-programs"
81 if [ "$TRAVIS_OS_NAME" != "osx" ]; then
82 conf_opts
="$conf_opts --enable-asan"
83 make_opts
="$make_opts --memcheck-asan"
86 xconfigure
$conf_opts ||
return
90 $MAKE check-programs ||
return
92 # Modify environment for OSX
95 # TS_OPTS= overwrites default from tests/Makemodule.am
96 sudo
-E $MAKE check
"TS_PARALLEL=--parallel=none" TS_OPTS
="$make_opts" ||
return
98 # root on osx has not enough permission for make install ;)
99 [ "$TRAVIS_OS_NAME" = "osx" ] && return
101 # keep PATH to make sure sudo would find $CC
102 sudo env
"PATH=$PATH" $MAKE install ||
return
109 $MAKE distcheck ||
return
112 function travis_install_script
114 if [ "$TRAVIS_OS_NAME" = "osx" ]; then
119 # install required packages
120 sudo apt-get
-qq update
--fix-missing
121 sudo apt-get
install -qq >/dev
/null \
135 # install only if available (e.g. Ubuntu Trusty)
136 sudo apt-get
install -qq >/dev
/null \
137 libsystemd-daemon-dev \
138 libsystemd-journal-dev \
142 function osx_install_script
144 brew update
>/dev
/null
146 brew
install gettext ncurses socat xz
147 brew link
--force gettext
148 brew link
--force ncurses
155 # workaround: glibtoolize could not find sed
159 function osx_prepare_check
161 [ "$TRAVIS_OS_NAME" = "osx" ] ||
return 0
163 # these ones only need to be gnu for our test-suite
164 brew
install coreutils findutils gnu-tar gnu-sed
166 # symlink minimally needed gnu commands into PATH
168 for cmd
in readlink
seq timeout truncate
find xargs tar sed; do
169 ln -s /usr
/local
/bin
/g
$cmd $HOME/bin
/$cmd
173 export TS_OPT_col_multibyte_known_fail
=yes
174 export TS_OPT_colcrt_regressions_known_fail
=yes
175 export TS_OPT_column_invalid_multibyte_known_fail
=yes
178 function travis_before_script
189 function travis_script
194 case "$MAKE_CHECK" in
205 echo "error, check environment (travis.yml)" >&2
210 # We exit here with case-switch return value!
216 function travis_after_script
221 # find diff dir from check as well as from distcheck
222 diff_dir
=$
(find .
-type d
-name "diff" |
grep "tests/diff" |
head -n 1)
223 if [ -d "$diff_dir" ]; then
224 tmp
=$
(find "$diff_dir" -type f |
sort)
225 echo -en "dump test diffs:\n${tmp}\n"
226 echo "$tmp" |
xargs cat