rsyslog/.travis.yml
Rainer Gerhards 4e04e2ee55 testbench: provide capability to split testbench
This is necessary as we hit the Travis max runtime limit per VM,
so we need to duplicate the tests. This is done via
--enable-testbench1 and --enable-testbench2 which we than use
in different VMs.

This PR also includes updates to the Travis scripts so that we
use the new capability. We have only duplicated Travis VMs where
acutally necessary -- we may need to do more of this in the future.

closes https://github.com/rsyslog/rsyslog/issues/2196
2017-12-11 11:22:14 +01:00

139 lines
6.3 KiB
YAML

os:
- osx
- linux
language: c
compiler:
- gcc
- clang
services:
- elasticsearch
- mysql
- postgresql
env:
global:
secure: DsTuVAZg5omWT652Xnz/ZG20nJ5ShdTDXPQA01HscUhjAzcuMYsCPp889QoLip+3O5yYH6/oH2WprQA6ZQQMt+7idNRo6ennu7tPQiHEBm/lK2Yq1W6r6tOb1zmSalbIVWV2cGTdKOOuHAatgmp/L70WjOlCrtLvPT+JQ9AkzLU=
addons:
apt:
sources:
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_14.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_12.04/Release.key'
packages:
- build-essential
- automake
- pkg-config
- libtool
- autoconf
- autotools-dev
- gdb
- valgrind
- libdbi-dev
- libsnmp-dev
- libmysqlclient-dev
- postgresql-client
- libglib2.0-dev
- libtokyocabinet-dev
- zlib1g-dev
- uuid-dev
- libgcrypt11-dev
- bison
- flex
- libcurl4-gnutls-dev
- python-docutils
- openjdk-7-jdk
- wget
- libkrb5-dev
- libsodium-dev
- libczmq-dev
- libnet1-dev
#- autoconf-archive
#- libgrok1
#- libgrok-dev
#- faketime
#- libdbd-mysql
#- libmongo-client-dev
matrix:
exclude:
- compiler: "gcc"
- compiler: "clang"
include:
- os: osx
compiler: "clang"
env: CFLAGS="-g "
#env: CFLAGS="-g -std=c99 -W -Wall -Wextra -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute"
# note: -Werror makes ./configure.sh not properly detect functions
# like strndup() on Ubuntu 12.04. So we enable it on trusty builds
# only. The first build with gcc actually only has the purpose of
# checking for warnings (the testbench currently has some issues
# on travis Ubuntu 14.04, but not in the regular environments, we
# need to find out some time why this is).
- os: linux
compiler: "gcc"
env: KAFKA="YES", CFLAGS="-g -std=c99 -W -Wall -Wextra -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute"
dist: trusty
- os: linux
compiler: "clang"
env: STAT_AN="NOT_OK_YES", GROK="YES", KAFKA="YES", CFLAGS="-g -O2 -std=c99 -W -Wall -Wextra -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -Wno-unused-function"
# note: we currently need -Wno-unused-function until we fix inline
# functions (C99 semantics are really ugly...)
dist: trusty
- os: linux
compiler: "clang"
env: MERGE="YES", STAT_AN="NOT_OK_YES", CHECK="YES", GROK="YES", KAFKA="YES", CFLAGS="-g -O2 -std=c99 -W -Wall -Wextra -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -Wno-unused-function"
# note: we currently need -Wno-unused-function until we fix inline
# functions (C99 semantics are really ugly...)
dist: trusty
- os: linux
compiler: "gcc"
env: BUILD_FROM_TARBALL="YES", GROK="YES", KAFKA="YES", CHECK="YES", CFLAGS="-g -O2 -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute", RS_TESTBENCH_VALGRIND_EXTRA_OPTS="--suppressions=travis/trusty.supp --gen-suppressions=all", EXTRA_CONFIGURE="--disable-testbench1"
dist: trusty
- os: linux
compiler: "gcc"
env: BUILD_FROM_TARBALL="YES", CHECK="YES", CFLAGS="-g -O2 -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute", RS_TESTBENCH_VALGRIND_EXTRA_OPTS="--suppressions=travis/trusty.supp --gen-suppressions=all", EXTRA_CONFIGURE="--disable-testbench2"
dist: trusty
- os: linux
compiler: "clang"
env: CHECK="YES", ESTEST="YES", CFLAGS="-g -O1 -fsanitize=address -fno-color-diagnostics"
- os: linux
compiler: "clang"
# we run this test without assert() enabled, so that we get "production timing"
dist: trusty
env: AD_PPA="v8-devel", CHECK="YES", CFLAGS="-g -O1 -fsanitize=address -fno-color-diagnostics", CONFIGURE_FLAGS="--disable-debug"
- os: linux
compiler: "gcc"
dist: trusty
env: DEBUGLESS="YES", CFLAGS="-g -O2 -std=c99 -W -Wall -Wextra -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -Wno-unused-function"
# next is experimental, we may merge it with some other compile-only test
- os: linux
compiler: "gcc"
env: GCC="NEWEST", KAFKA="YES", GROK="YES", CFLAGS="-g"
dist: trusty
- os: linux
compiler: "gcc"
dist: trusty
env: DO_COVERITY="YES",DO_CRON="YES", KAFKA="YES", GROK="YES"
before_install:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "${AD_PPA}x" == "x" ] ; then AD_PPA="v8-stable"; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then sudo add-apt-repository ppa:adiscon/$AD_PPA -y ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then sudo add-apt-repository ppa:qpid/released -y ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then sudo apt-get update -qq ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then mysql -u root -e "CREATE USER 'rsyslog'@'localhost' IDENTIFIED BY 'testbench';" ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then mysql -u root -e "GRANT ALL PRIVILEGES ON * . * TO 'rsyslog'@'localhost'; FLUSH PRIVILEGES;" ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then mysql -u root -e "CREATE DATABASE Syslog; GRANT ALL ON Syslog.* to 'rsyslog'@'localhost' identified by 'testbench';" ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then mysql -u root -e "USE Syslog; CREATE TABLE SystemEvents (ID int unsigned not null auto_increment primary key, CustomerID bigint,ReceivedAt datetime NULL,DeviceReportedTime datetime NULL,Facility smallint NULL,Priority smallint NULL,FromHost varchar(60) NULL,Message text,NTSeverity int NULL,Importance int NULL,EventSource varchar(60),EventUser varchar(60) NULL,EventCategory int NULL,EventID int NULL,EventBinaryData text NULL,MaxAvailable int NULL,CurrUsage int NULL,MinUsage int NULL,MaxUsage int NULL,InfoUnitID int NULL,SysLogTag varchar(60),EventLogType varchar(60),GenericFileName VarChar(60),SystemID int NULL); CREATE TABLE SystemEventsProperties (ID int unsigned not null auto_increment primary key,SystemEventID int NULL,ParamName varchar(255) NULL,ParamValue text NULL);" ; fi
install:
script:
- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then tests/travis/run.sh ; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then tests/travis/run-osx.sh ; fi