Use libvdeplug.h instead of libvdeplug_dyn.h
[tinc] / .ci / test / run.sh
1 #!/bin/sh
2
3 set -eu
4
5 bail() {
6   echo >&2 "@"
7   exit 1
8 }
9
10 header() {
11   echo '################################################################################'
12   echo "# $*"
13   echo '################################################################################'
14 }
15
16 run_tests() {
17   flavor="$1"
18   shift
19
20   header "Cleaning up leftovers from previous runs"
21
22   for name in tinc tincd; do
23     sudo pkill -TERM -x "$name" || true
24     sudo pkill -KILL -x "$name" || true
25   done
26
27   sudo git clean -dfx
28   sudo chown -R "${USER:-$(whoami)}" .
29
30   header "Running test flavor $flavor"
31
32   autoreconf -fsi
33   # shellcheck disable=SC2046
34   ./configure $(sh .ci/conf.sh "$@")
35   make -j"$(nproc)" all extra
36
37   code=0
38   make check -j2 VERBOSE=1 || code=$?
39
40   mkdir -p /tmp/logs
41   sudo tar -c -z -f "/tmp/logs/tests.$flavor.tar.gz" test/
42
43   return $code
44 }
45
46 echo "system name $(uname -s)"
47 echo "full $(uname -a)"
48 echo "o $(uname -o)"
49
50 case "$(uname -s)" in
51 Linux)
52   if [ -n "${HOST:-}" ]; then
53     # Needed for cross-compilation for 32-bit targets.
54     export CPPFLAGS='-D_FILE_OFFSET_BITS=64'
55   fi
56   ;;
57
58 MINGW*)
59   # No-op.
60   sudo() { "$@"; }
61   ;;
62
63 Darwin)
64   nproc() { sysctl -n hw.ncpu; }
65   gcrypt=$(brew --prefix libgcrypt)
66   openssl=$(brew --prefix openssl)
67   export CPPFLAGS="-I/usr/local/include -I$gcrypt/include -I$openssl/include -I$gcrypt/include"
68   ;;
69 esac
70
71 case "$1" in
72 default)
73   run_tests default
74   ;;
75 nolegacy)
76   run_tests nolegacy --disable-legacy-protocol
77   ;;
78 *)
79   bail "unknown test flavor $1"
80   ;;
81 esac