-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathunit-tests.sh
executable file
·74 lines (65 loc) · 2.17 KB
/
unit-tests.sh
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env bash
# Copyright 2020 Red Hat, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
STORAGE=$1
function run_unit_tests() {
if [ -z "$TEST_TO_RUN" ]; then
echo "No specific tests given. Running all available tests."
run_cmd="$(go list ./... | grep -v tests | tr '\n' ' ')"
else
echo "Running specific test $TEST_TO_RUN"
run_cmd="$TEST_TO_RUN"
fi
# shellcheck disable=SC2046
if ! go test -timeout 10m -coverprofile coverage.out $run_cmd
then
echo "unit tests failed"
exit 1
fi
}
function check_composer() {
if command -v docker > /dev/null && docker compose version > /dev/null 2>&1; then
COMPOSER="docker compose"
elif command -v docker-compose > /dev/null; then
COMPOSER=docker-compose
elif command -v podman-compose > /dev/null; then
COMPOSER=podman-compose
else
echo "Please, install docker-compose or podman-compose to run this tests"
exit 1
fi
}
function wait_for_postgres() {
echo -n "Waiting for postgres to be available"
until psql "dbname=aggregator user=postgres password=postgres host=localhost sslmode=disable" -c '\q' 2> /dev/null; do
echo -n "."
sleep 1
done
echo
echo "Postgres already available. Continuing"
}
if [ -z "$CI" ]; then
echo "Running postgres container locally"
check_composer
echo \"$COMPOSER\" to be used as composer
$COMPOSER up -d > /dev/null
wait_for_postgres
fi
path_to_config=$(pwd)/config-devel.toml
export INSIGHTS_RESULTS_AGGREGATOR_CONFIG_FILE="$path_to_config"
run_unit_tests
if [ -z "$CI" ]; then
echo "Stopping postgres container"
$COMPOSER down > /dev/null
fi