diff --git a/contrib/travis-ci b/contrib/travis-ci index 90ce3001..4a07585b 100755 --- a/contrib/travis-ci +++ b/contrib/travis-ci @@ -4,6 +4,9 @@ set -e 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:-""} case $SSL in "") SSL_LIB="--without-ssl";; @@ -13,28 +16,40 @@ esac # 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 -# value of only 2 here. +# value of n+1 here. CORES=3 # 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. 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 # measure time consumed and print it at the end of the script START=$(date +%s) -# the compiler changed, so we have to remove the cache file here -rm -f "$CACHEFILE" - +# Test different Permutations of Wget. Always under Valgrind +# +# 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 export DISTCHECK_CONFIGURE_FLAGS="-C --cache-file=$CACHEFILE --enable-assert --enable-valgrind-tests $SSL_LIB $options" echo " ./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" echo " TESTS_ENVIRONMENT=\"$TESTS_ENVIRONMENT\" make distcheck CFLAGS=$CFLAGS -j$CORES" make distcheck CFLAGS="$CFLAGS" -j$CORES