-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-entrypoint.sh
More file actions
executable file
·40 lines (32 loc) · 1.57 KB
/
Copy pathdocker-entrypoint.sh
File metadata and controls
executable file
·40 lines (32 loc) · 1.57 KB
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
#!/bin/sh
set -e # Exit immediately if a command exits with a non-zero status
# Start Redis in the background
echo "Starting Redis server..."
# Bind to 127.0.0.1 for internal access within the same container
redis-server --port 6379 --bind 127.0.0.1 &
REDIS_PID=$! # Store the PID of the Redis server process
# Ensure Redis is stopped when this script exits for any reason
trap 'kill "$REDIS_PID" >/dev/null 2>&1 || true' EXIT
# Wait for Redis to be ready (e.g., by trying to connect to it)
echo "Waiting for Redis to be ready..."
until redis-cli -h 127.0.0.1 -p 6379 ping >/dev/null 2>&1; do
echo "Redis is unavailable - sleeping"
sleep 1
done
echo "Redis is up and running!"
# Optional data path used by some tests
echo "$datapath"
# Configure coverage output location (default to /coverage mounted from host)
COVER_DIR=${COVER_DIR:-/coverage}
mkdir -p "$COVER_DIR"
COVERPROFILE=${COVERPROFILE:-$COVER_DIR/integration_coverage.out}
# Now, run integration tests with coverage (omit -race to avoid toolchain deps in Alpine)
echo "Running Go integration tests with coverage (tags=integration)..."
# Instrument only the requested packages for coverage aggregation (integration scope)
# Limit to infs (integration target) and core deps commonly exercised by those tests.
COVERPKG="./infs/...,./fs/...,./common/...,./btree/..."
go test -vet=off -tags=integration -timeout 600s -covermode=atomic -coverpkg="$COVERPKG" -coverprofile="$COVERPROFILE" -v ./infs/integrationtests
TEST_STATUS=$?
echo "Tests finished with status: $TEST_STATUS"
# Exit with the status of the test command
exit $TEST_STATUS