Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Productionize testing + add CI #33

Merged
merged 13 commits into from Apr 26, 2021
129 changes: 129 additions & 0 deletions .cirrus.yml
@@ -0,0 +1,129 @@
env:
BUILD: check
HOST:
MAKEFLAGS: -j4
BENCH: yes
TESTRUNS:
EXEC_CMD:

cat_logs_snippet: &CAT_LOGS
on_failure:
cat_config_log_script:
- cat config.log || true
cat_test_env_script:
- cat test_env.log || true
cat_ci_env_script:
- env

merge_base_script_snippet: &MERGE_BASE
merge_base_script:
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
- git config --global user.email "ci@ci.ci"
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts

task:
name: "x86_64: Linux (Debian stable)"
container:
dockerfile: ci/linux-debian.Dockerfile
memory: 2G
cpu: 4
matrix: &ENV_MATRIX
- env:
- env:
BUILD: distcheck
- env:
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
BENCH: no
- env:
EXEC_CMD: valgrind --error-exitcode=42
TESTRUNS: 1
BUILD:
matrix:
- env:
CC: gcc
- env:
CC: clang
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "i686: Linux (Debian stable)"
container:
dockerfile: ci/linux-debian.Dockerfile
memory: 2G
cpu: 4
env:
HOST: i686-linux-gnu
matrix:
- env:
CC: i686-linux-gnu-gcc
- env:
CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "x86_64: macOS Catalina"
macos_instance:
image: catalina-base
env:
# Cirrus gives us a fixed number of 12 virtual CPUs.
MAKEFLAGS: -j13
matrix:
- env: {}
- env: {BUILD: distcheck}
- env:
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
matrix:
- env:
CC: gcc-9
- env:
CC: clang
brew_script:
- brew install automake libtool gcc@9
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
container:
dockerfile: ci/linux-debian.Dockerfile
cpu: 4
memory: 2G
env:
EXEC_CMD: qemu-s390x -L /usr/s390x-linux-gnu
HOST: s390x-linux-gnu
BUILD:
<< : *MERGE_BASE
test_script:
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008
- rm /etc/ld.so.cache
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "x86_64-w64-mingw32: Linux (Debian stable, Wine)"
container:
dockerfile: ci/linux-debian.Dockerfile
cpu: 4
memory: 2G
env:
EXEC_CMD: wine
HOST: x86_64-w64-mingw32
CXXFLAGS: -O2 -static -static-libgcc -static-libstdc++
BUILD:
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS
26 changes: 13 additions & 13 deletions Makefile.am
Expand Up @@ -58,26 +58,26 @@ if USE_BENCHMARK
noinst_PROGRAMS += bench
endif
if USE_TESTS
noinst_PROGRAMS += test-exhaust test-exhaust-verify
TESTS = test-exhaust test-exhaust-verify
noinst_PROGRAMS += test test-verify
TESTS = test test-verify
endif

bench_SOURCES = $(MINISKETCH_BENCH_SOURCES_INT)
bench_CPPFLAGS = $(AM_CPPFLAGS) $(RELEASE_DEFINES)
bench_LDADD = $(LIBMINISKETCH)
bench_LDFLAGS = $(AM_LDFLAGS) -static

test_exhaust_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
test_exhaust_CPPFLAGS = $(AM_CPPFLAGS) $(RELEASE_DEFINES)
test_exhaust_CXXFLAGS = $(AM_CXXFLAGS) $(PTHREAD_CFLAGS)
test_exhaust_LDADD = $(LIBMINISKETCH)
test_exhaust_LDFLAGS = $(AM_LDFLAGS) $(PTHREAD_CFLAGS) -static

test_exhaust_verify_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
test_exhaust_verify_CPPFLAGS = $(AM_CPPFLAGS) $(VERIFY_DEFINES)
test_exhaust_verify_CXXFLAGS = $(AM_CXXFLAGS) $(PTHREAD_CFLAGS)
test_exhaust_verify_LDADD = $(LIBMINISKETCH_VERIFY)
test_exhaust_verify_LDFLAGS = $(AM_LDFLAGS) $(PTHREAD_CFLAGS) -static
test_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
test_CPPFLAGS = $(AM_CPPFLAGS) $(RELEASE_DEFINES)
test_CXXFLAGS = $(AM_CXXFLAGS)
test_LDADD = $(LIBMINISKETCH)
test_LDFLAGS = $(AM_LDFLAGS) -static

test_verify_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
test_verify_CPPFLAGS = $(AM_CPPFLAGS) $(VERIFY_DEFINES)
test_verify_CXXFLAGS = $(AM_CXXFLAGS)
test_verify_LDADD = $(LIBMINISKETCH_VERIFY)
test_verify_LDFLAGS = $(AM_LDFLAGS) -static

EXTRA_DIST=
EXTRA_DIST += LICENSE
Expand Down