Faster Travis Builds

* contrib/travis-ci: Test under different languages only when all the
features are enabled. This covers the maximum number of strings. For the
other option permutations, test only in the default C locale
This commit is contained in:
Darshit Shah 2015-12-10 22:43:31 +01:00
parent 9933da2b9f
commit 30b0705fa6

View File

@ -4,6 +4,9 @@
set -e set -e
set -u set -u
# Set up the subset of tests this Matrix instance will run.
# One instance is forked for each of the SSL library possibilities
SSL=${1:-""} SSL=${1:-""}
case $SSL in case $SSL in
"") SSL_LIB="--without-ssl";; "") SSL_LIB="--without-ssl";;
@ -13,28 +16,40 @@ esac
# For some reason. /proc/cpuinfo reports 16 cores on Travis, while the docs # For some reason. /proc/cpuinfo reports 16 cores on Travis, while the docs
# claim that each instance has only 2 cores. We believe the docs and force a # claim that each instance has only 2 cores. We believe the docs and force a
# value of only 2 here. # value of n+1 here.
CORES=3 CORES=3
# Define a large number of Warning flags for the compiler. Hopefully, someone # Define a large number of Warning flags for the compiler. Hopefully, someone
# will sit and analyze the output to clean the warnings from the codebase. # will sit and analyze the output to clean the warnings from the codebase.
CFLAGS="-std=c89 -pedantic -O2 -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wwrite-strings -Wshadow -Wformat -Wformat-security -Wunreachable-code -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition" CFLAGS="-std=c89 -pedantic -O2 -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wwrite-strings -Wshadow -Wformat -Wformat-security -Wunreachable-code -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition"
# A cachefile for ./configure. I'm not sure if this is any useful. # A cachefile for ./configure. Saves significant time when reconfiguring
CACHEFILE=$PWD/config_check.cache CACHEFILE=$PWD/config_check.cache
# measure time consumed and print it at the end of the script # measure time consumed and print it at the end of the script
START=$(date +%s) START=$(date +%s)
# the compiler changed, so we have to remove the cache file here # Test different Permutations of Wget. Always under Valgrind
rm -f "$CACHEFILE" #
# Options:
# - All Features Enabled
# - C [Default Locale]
# - Russian [Multibyte / Multicolumn Locale]
# - Turkish [Special Test due to issues with language]
# - IPv6 Disabled
# - C
for options in "" "--disable-ipv6"; do for options in "" "--disable-ipv6"; do
export DISTCHECK_CONFIGURE_FLAGS="-C --cache-file=$CACHEFILE --enable-assert --enable-valgrind-tests $SSL_LIB $options" export DISTCHECK_CONFIGURE_FLAGS="-C --cache-file=$CACHEFILE --enable-assert --enable-valgrind-tests $SSL_LIB $options"
echo " ./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS=\"$CFLAGS\"" echo " ./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS=\"$CFLAGS\""
./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS="$CFLAGS" ./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS="$CFLAGS"
for xLCALL in "ru_RU.UTF-8" "C" "tr_TR.UTF-8"; do if [[ -z $options ]]; then
LANG_ARR=("ru_RU.UTF-8" "tr_TR.UTF-8" "C")
else
LANG_ARR=("C")
fi
for xLCALL in "${LANG_ARR[@]}"; do
export TESTS_ENVIRONMENT="LC_ALL=$xLCALL VALGRIND_TESTS=1" export TESTS_ENVIRONMENT="LC_ALL=$xLCALL VALGRIND_TESTS=1"
echo " TESTS_ENVIRONMENT=\"$TESTS_ENVIRONMENT\" make distcheck CFLAGS=$CFLAGS -j$CORES" echo " TESTS_ENVIRONMENT=\"$TESTS_ENVIRONMENT\" make distcheck CFLAGS=$CFLAGS -j$CORES"
make distcheck CFLAGS="$CFLAGS" -j$CORES make distcheck CFLAGS="$CFLAGS" -j$CORES