You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.4 KiB
89 lines
2.4 KiB
#!/bin/bash
|
|
# Test runner for S3 policy variables integration tests
|
|
# This script starts a SeaweedFS server with the required IAM configuration
|
|
# and runs the integration tests.
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}=== S3 Policy Variables Integration Test Runner ===${NC}"
|
|
|
|
# Get the directory of this script
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
|
|
# Always build to ensure latest changes are tested
|
|
echo -e "${YELLOW}Building weed binary...${NC}"
|
|
cd "$PROJECT_ROOT/weed" && go install
|
|
if ! command -v weed &> /dev/null; then
|
|
echo -e "${RED}Failed to build weed binary${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Kill any existing weed server on port 8333
|
|
echo "Checking for existing weed server..."
|
|
if lsof -Pi :8333 -sTCP:LISTEN -t >/dev/null 2>&1 ; then
|
|
echo -e "${YELLOW}Killing existing weed server on port 8333...${NC}"
|
|
kill $(lsof -t -i:8333) 2>/dev/null || true
|
|
sleep 2
|
|
fi
|
|
|
|
# Start weed server with IAM configuration
|
|
echo -e "${GREEN}Starting weed server with IAM configuration...${NC}"
|
|
weed server \
|
|
-s3 \
|
|
-s3.port=8333 \
|
|
-s3.iam.config="$SCRIPT_DIR/test_iam_config.json" \
|
|
-filer \
|
|
-volume.max=0 \
|
|
-master.volumeSizeLimitMB=100 \
|
|
-s3.allowDeleteBucketNotEmpty=true \
|
|
> /tmp/weed_test_server.log 2>&1 &
|
|
|
|
SERVER_PID=$!
|
|
echo "Server started with PID: $SERVER_PID"
|
|
|
|
# Wait for server to be ready
|
|
echo "Waiting for server to be ready..."
|
|
MAX_WAIT=30
|
|
COUNTER=0
|
|
while ! curl -s http://localhost:8333/status > /dev/null 2>&1; do
|
|
sleep 1
|
|
COUNTER=$((COUNTER + 1))
|
|
if [ $COUNTER -ge $MAX_WAIT ]; then
|
|
echo -e "${RED}Server failed to start within ${MAX_WAIT} seconds${NC}"
|
|
echo "Server log:"
|
|
cat /tmp/weed_test_server.log
|
|
kill $SERVER_PID 2>/dev/null || true
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo -e "${GREEN}Server is ready!${NC}"
|
|
|
|
# Run the tests
|
|
echo -e "${GREEN}Running integration tests...${NC}"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# Trap to ensure server is killed on exit
|
|
trap "echo -e '${YELLOW}Shutting down server...${NC}'; kill $SERVER_PID 2>/dev/null || true" EXIT
|
|
|
|
# Run the tests
|
|
go test -v -run TestS3PolicyVariables .
|
|
|
|
TEST_RESULT=$?
|
|
|
|
if [ $TEST_RESULT -eq 0 ]; then
|
|
echo -e "${GREEN}=== All tests passed! ===${NC}"
|
|
else
|
|
echo -e "${RED}=== Tests failed ===${NC}"
|
|
echo "Server log (last 50 lines):"
|
|
tail -50 /tmp/weed_test_server.log
|
|
fi
|
|
|
|
exit $TEST_RESULT
|