-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathrun-backend-tests
executable file
·102 lines (85 loc) · 2.84 KB
/
run-backend-tests
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/env bash
. ./scripts/devcontainer/_assert-in-container "$0" "$@"
set -euo pipefail
trap ctrl_c INT
function ctrl_c() {
killall -9 Tests
exit 1
}
LLDB=false
PUBLISHED=false
EXPECTO_ARGS=()
for i in "$@"
do
case "${i}" in
--lldb) LLDB=true ;;
--published) PUBLISHED=true ;;
*) EXPECTO_ARGS+=("${i}");;
esac
done
killall -9 Tests || true
if [[ "$PUBLISHED" == "true" ]]; then
EXE=Build/out/Tests/Release/net6.0/linux-x64/Tests
EXECHOST=Build/out/ExecHost/Release/net6.0/linux-x64/ExecHost
else
EXE=Build/out/Tests/Debug/net6.0/linux-x64/Tests
EXECHOST=Build/out/ExecHost/Debug/net6.0/linux-x64/ExecHost
fi
echo "Dropping testdb database"
./scripts/devcontainer/_wait-for-background-services postgresql
dropdb --if-exists testdb
createdb testdb
LOGS="${DARK_CONFIG_RUNDIR}/logs"
./scripts/run-pubsub-emulator
./scripts/run-cloud-storage-emulator
./scripts/run-httptunnel
./scripts/run-nginx-server
# Use random to avoid old items being in the pubsub queue. Use this instead of
# $RANDOM as RANDOM is only 5 digits
RANDOM_VALUE=$(cat /proc/sys/kernel/random/uuid)
# Run the migrations before the other servers start
echo "Running migrations"
cd backend && \
DARK_CONFIG_TELEMETRY_EXPORTER=none \
DARK_CONFIG_DB_HOST=localhost \
DARK_CONFIG_DB_DBNAME=testdb \
DARK_CONFIG_DB_USER=dark \
DARK_CONFIG_DB_PASSWORD=darklang \
DARK_CONFIG_ROLLBAR_ENABLED=n \
DARK_CONFIG_QUEUE_PUBSUB_PROJECT_ID=pubsub-test-${RANDOM_VALUE} \
DARK_CONFIG_TRACE_STORAGE_BUCKET_NAME=trace-test-${RANDOM_VALUE} \
"${EXECHOST}" migrations run > "$LOGS/test-fsharp-migrations.log" 2>&1
cd ..
JUNIT_FILE="${DARK_CONFIG_RUNDIR}/test_results/backend.xml"
COLOURS="256"
SPINNER=
if [[ -v CI ]]; then
# Expecto needs `--colours 0` or the xml will be invalid
# https://github.com/haf/expecto/issues/434
COLOURS="0"
SPINNER="--no-spinner"
fi
cd backend
if [[ "$LLDB" == "true" ]]; then
DARK_CONFIG_TELEMETRY_EXPORTER=none \
DARK_CONFIG_ROLLBAR_ENABLED=n \
DARK_CONFIG_DB_HOST=localhost \
DARK_CONFIG_DB_DBNAME=testdb \
DARK_CONFIG_DB_USER=dark \
DARK_CONFIG_DB_PASSWORD=darklang \
DARK_CONFIG_LAUNCHDARKLY_SDK_API_KEY=none \
DARK_CONFIG_QUEUE_PUBSUB_PROJECT_ID=pubsub-test-${RANDOM_VALUE} \
DARK_CONFIG_TRACE_STORAGE_BUCKET_NAME=trace-test-${RANDOM_VALUE} \
lldb -- "${EXE}" --no-spinner --colours 0 --junit-summary "${JUNIT_FILE}" "${EXPECTO_ARGS[@]}"
else
DARK_CONFIG_TELEMETRY_EXPORTER=none \
DARK_CONFIG_ROLLBAR_ENABLED=n \
DARK_CONFIG_DB_HOST=localhost \
DARK_CONFIG_DB_DBNAME=testdb \
DARK_CONFIG_DB_USER=dark \
DARK_CONFIG_DB_PASSWORD=darklang \
DARK_CONFIG_LAUNCHDARKLY_SDK_API_KEY=none \
DARK_CONFIG_QUEUE_PUBSUB_PROJECT_ID=pubsub-test-${RANDOM_VALUE} \
DARK_CONFIG_TRACE_STORAGE_BUCKET_NAME=trace-test-${RANDOM_VALUE} \
"${EXE}" ${SPINNER} --colours "${COLOURS}" --junit-summary "${JUNIT_FILE}" "${EXPECTO_ARGS[@]}"
fi