File: test.sh

package info (click to toggle)
tango 10.0.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 89,936 kB
  • sloc: cpp: 201,786; sh: 1,645; python: 953; java: 800; perl: 467; javascript: 447; xml: 325; makefile: 272; sql: 72; ruby: 24
file content (47 lines) | stat: -rwxr-xr-x 1,415 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! /usr/bin/env bash

set -e

# taken from https://stackoverflow.com/a/246128
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

source "${SCRIPT_DIR}"/vars.sh

if [[ "$GITLAB_CI" == "true" ]]
then
  echo "Preparing for test run inside CI"
  ulimit -c unlimited

  if hash sysctl 2>/dev/null
  then
    sudo sh -c 'sysctl kernel.core_pattern="core.%e.%p.%t"'
  else
    sudo sh -c 'echo "core.%e.%p.%t" > /proc/sys/kernel/core_pattern'
  fi

  docker pull registry.gitlab.com/tango-controls/docker/mysql:5.16-mysql-5
  docker pull registry.gitlab.com/tango-controls/docker/tango-db:5.16-1

  # Setup a route to the containers running inside dind
  sudo ip route add $(docker network inspect -f '{{(index .IPAM.Config 0).Subnet}}' bridge) \
  via                                                                                       \
  $(getent hosts docker | awk '{ print $1 }')                                               \
  dev eth0
fi

ADDITIONAL_ARGS=""

if [[ -n "${SKIP_TESTS}" ]]
then
  ADDITIONAL_ARGS="${ADDITIONAL_ARGS} -E ${SKIP_TESTS}"
fi

# prefer --test-dir once cmake 3.20 is mandatory, see
# https://stackoverflow.com/a/66280917

# restore CWD on script exit
STORED_CWD=${PWD}
trap "cd ${STORED_CWD}" EXIT

cd ${BUILD_DIR}
ctest --output-on-failure ${ADDITIONAL_ARGS} || ( echo "Rerunning failed tests"; ctest --output-on-failure --rerun-failed ${ADDITIONAL_ARGS})