sync

Backup service to store encrypted wallet databases (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 83a2ae9850b2550f0da7fe5c416e4b005d6ac509
parent 161ee75dcf7b0901f44b77ef91f834c677ac629d
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Sun,  1 Jun 2025 15:42:58 +0200

CI: Add coverage

Diffstat:
Acontrib/ci/jobs/2-test/1-build.sh | 12++++++++++++
Acontrib/ci/jobs/2-test/2-install.sh | 4++++
Acontrib/ci/jobs/2-test/3-startdb.sh | 7+++++++
Acontrib/ci/jobs/2-test/4-test.sh | 36++++++++++++++++++++++++++++++++++++
Acontrib/ci/jobs/2-test/5-coverage.sh | 20++++++++++++++++++++
Mcontrib/ci/jobs/2-test/job.sh | 6+++++-
Dcontrib/ci/jobs/2-test/test.sh | 51---------------------------------------------------
7 files changed, 84 insertions(+), 52 deletions(-)

diff --git a/contrib/ci/jobs/2-test/1-build.sh b/contrib/ci/jobs/2-test/1-build.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -evu + +apt-get update +apt-get upgrade -yqq + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --prefix=/usr \ + --enable-coverage \ + --enable-logging=verbose \ + --disable-doc diff --git a/contrib/ci/jobs/2-test/2-install.sh b/contrib/ci/jobs/2-test/2-install.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -evux + +make install diff --git a/contrib/ci/jobs/2-test/3-startdb.sh b/contrib/ci/jobs/2-test/3-startdb.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -evux + +sudo -u postgres /usr/lib/postgresql/15/bin/postgres -D /etc/postgresql/15/main -h localhost -p 5432 & +sleep 10 +sudo -u postgres createuser -p 5432 root +sudo -u postgres createdb -p 5432 -O root synccheck diff --git a/contrib/ci/jobs/2-test/4-test.sh b/contrib/ci/jobs/2-test/4-test.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -evux + +check_command() +{ + # Set LD_LIBRARY_PATH so tests can find the installed libs + LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/taler:/usr/lib:/usr/lib/taler PGPORT=5432 make check +} + +print_logs() +{ + for i in src/*/test-suite.log + do + for FAILURE in $(grep '^FAIL:' ${i} | cut -d' ' -f2) + do + echo "Printing ${FAILURE}.log" + echo "========BEGIN======" + cat "$(dirname $i)/${FAILURE}.log" + echo "=========END=======" + echo "End of ${FAILURE}.log" + done + done + for LOGFILE in src/testing/*.log + do + echo "Printing ${LOGFILE}" + echo "========BEGIN======" + cat "${LOGFILE}" + echo "=========END=======" + echo "End of ${LOGFILE}" + done +} + +if ! check_command ; then + print_logs + exit 1 +fi diff --git a/contrib/ci/jobs/2-test/5-coverage.sh b/contrib/ci/jobs/2-test/5-coverage.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -evux + +ARTIFACT_PATH="/artifacts/sync/${CI_COMMIT_REF}/sync" +mkdir -p /artifacts/sync/lcov/${CI_COMMIT_REF}/sync # Variable comes from CI environment +lcov --capture --directory . --output-file coverage.info || exit 1 +genhtml coverage.info --output-directory ${ARTIFACT_PATH} || exit 1 + + +RSYNC_HOST="taler.host.internal" +RSYNC_PORT=424243 +RSYNC_PATH="incoming_packages/taler/" +RSYNC_DEST="rsync://${RSYNC_HOST}/${RSYNC_PATH}" + + +rsync -vP \ + --port ${RSYNC_PORT} \ + ${ARTIFACT_PATH} ${RSYNC_DEST} || exit 1 + + diff --git a/contrib/ci/jobs/2-test/job.sh b/contrib/ci/jobs/2-test/job.sh @@ -3,4 +3,8 @@ set -exuo pipefail job_dir=$(dirname "${BASH_SOURCE[0]}") -"${job_dir}"/test.sh +"${job_dir}"/1-build.sh +"${job_dir}"/2-install.sh +"${job_dir}"/3-startdb.sh +"${job_dir}"/4-test.sh +"${job_dir}"/5-coverage.sh diff --git a/contrib/ci/jobs/2-test/test.sh b/contrib/ci/jobs/2-test/test.sh @@ -1,51 +0,0 @@ -#!/bin/bash -set -evu - -apt-get update -apt-get upgrade -yqq - -./bootstrap -./configure CFLAGS="-ggdb -O0" \ - --prefix=/usr \ - --enable-logging=verbose \ - --disable-doc -make -j install - -sudo -u postgres /usr/lib/postgresql/15/bin/postgres -D /etc/postgresql/15/main -h localhost -p 5432 & -sleep 10 -sudo -u postgres createuser -p 5432 root -sudo -u postgres createdb -p 5432 -O root synccheck - -check_command() -{ - # Set LD_LIBRARY_PATH so tests can find the installed libs - LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/taler:/usr/lib:/usr/lib/taler PGPORT=5432 make check -} - -print_logs() -{ - for i in src/*/test-suite.log - do - for FAILURE in $(grep '^FAIL:' ${i} | cut -d' ' -f2) - do - echo "Printing ${FAILURE}.log" - echo "========BEGIN======" - cat "$(dirname $i)/${FAILURE}.log" - echo "=========END=======" - echo "End of ${FAILURE}.log" - done - done - for LOGFILE in src/testing/*.log - do - echo "Printing ${LOGFILE}" - echo "========BEGIN======" - cat "${LOGFILE}" - echo "=========END=======" - echo "End of ${LOGFILE}" - done -} - -if ! check_command ; then - print_logs - exit 1 -fi