/
test.sh
executable file
·105 lines (72 loc) · 2.27 KB
/
test.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
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
103
104
105
#!/usr/bin/env bash
set -e
pushd "$(pwd)"
function teardown() {
docker rm -f ffmpeg || true
docker rm -f rtsp-simple-server || true
docker-compose down --remove-orphans --volumes || true
popd >/dev/null 2>&1 || true
}
trap teardown exit
CCTV_EVENTS_QUOTA=1
CCTV_EVENTS_PATH="$(pwd)/temp_data/events"
CCTV_SEGMENTS_QUOTA=1
CCTV_SEGMENTS_PATH="$(pwd)/temp_data/segments"
CCTV_SEGMENT_DURATION=30
CCTV_MOTION_CONFIGS="$(pwd)/motion-configs-testing"
DISABLE_NVIDIA=1
export CCTV_EVENTS_QUOTA
export CCTV_EVENTS_PATH
export CCTV_SEGMENTS_QUOTA
export CCTV_SEGMENTS_PATH
export CCTV_SEGMENT_DURATION
export CCTV_MOTION_CONFIGS
export DISABLE_NVIDIA
export DOCKER_BUILDKIT=1
export HASURA_GRAPHQL_ENDPOINT="http://localhost:8082/"
#
# hasura deps
#
docker-compose up -d postgres hasura
cd persistence/hasura
while ! hasura migrate apply >/dev/null 2>&1; do
sleep 1
done
hasura migrate apply
hasura metadata apply
hasura seeds apply
popd
#
# test stream
#
docker run --rm -d --name rtsp-simple-server -e RTSP_PROTOCOLS=tcp -p 8554:8554 aler9/rtsp-simple-server
docker run --rm -d --name ffmpeg -v "$(pwd)/test_data/segments/":/srv/ jrottenberg/ffmpeg:4.3.1-ubuntu1804 \
-re -stream_loop -1 -i /srv/Segment_2020-12-25T08:45:04_Driveway.mp4 -c copy -f rtsp rtsp://host.docker.internal:8554/Streaming/Channels/101
if [[ "${ATTACH}" == "1" ]]; then
# for developing against this environment
docker-compose logs -f -t
else
# run tests (serially, because of the shared database)
go test -v ./pkg/filesystem
go test -v ./pkg/media/converter
go test -v ./pkg/media/metadata
go test -v ./pkg/media/segment_recorder
go test -v ./pkg/media/thumbnail_creator
go test -v ./pkg/motion/event_receiver
go test -v ./pkg/persistence/application
go test -v ./pkg/persistence/graphql
go test -v ./pkg/persistence/helpers
go test -v ./pkg/persistence/legacy
go test -v ./pkg/persistence/model
go test -v ./pkg/persistence/registry
go test -v ./pkg/process
go test -v ./pkg/segments/event_receiver
go test -v ./pkg/segments/segment_generator
go test -v ./pkg/services/motion_processor
go test -v ./pkg/services/segment_generators
go test -v ./pkg/services/segment_processor
go test -v ./pkg/test_utils
go test -v ./pkg/utils
echo ""
echo "All passed."
fi