diff options
Diffstat (limited to 'test/postgres/run-tests.sh')
| -rwxr-xr-x | test/postgres/run-tests.sh | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/test/postgres/run-tests.sh b/test/postgres/run-tests.sh index 2c23d2d2d..6ca85958c 100755 --- a/test/postgres/run-tests.sh +++ b/test/postgres/run-tests.sh @@ -11,6 +11,22 @@ NC='\033[0m' # No Color echo -e "${BLUE}=== SeaweedFS PostgreSQL Test Setup ===${NC}" +# Function to get the correct docker compose command +get_docker_compose_cmd() { + if command -v docker &> /dev/null && docker compose version &> /dev/null 2>&1; then + echo "docker compose" + elif command -v docker-compose &> /dev/null; then + echo "docker-compose" + else + echo -e "${RED}x Neither 'docker compose' nor 'docker-compose' is available${NC}" + exit 1 + fi +} + +# Get the docker compose command to use +DOCKER_COMPOSE_CMD=$(get_docker_compose_cmd) +echo -e "${BLUE}Using: ${DOCKER_COMPOSE_CMD}${NC}" + # Function to wait for service wait_for_service() { local service=$1 @@ -19,8 +35,8 @@ wait_for_service() { echo -e "${YELLOW}Waiting for $service to be ready...${NC}" while [ $count -lt $max_wait ]; do - if docker-compose ps $service | grep -q "healthy\|Up"; then - echo -e "${GREEN}✓ $service is ready${NC}" + if $DOCKER_COMPOSE_CMD ps $service | grep -q "healthy\|Up"; then + echo -e "${GREEN}- $service is ready${NC}" return 0 fi sleep 2 @@ -28,7 +44,7 @@ wait_for_service() { echo -n "." done - echo -e "${RED}✗ Timeout waiting for $service${NC}" + echo -e "${RED}x Timeout waiting for $service${NC}" return 1 } @@ -36,7 +52,7 @@ wait_for_service() { show_logs() { local service=$1 echo -e "${BLUE}=== $service logs ===${NC}" - docker-compose logs --tail=20 $service + $DOCKER_COMPOSE_CMD logs --tail=20 $service echo } @@ -44,12 +60,12 @@ show_logs() { case "$1" in "start") echo -e "${YELLOW}Starting SeaweedFS cluster and PostgreSQL server...${NC}" - docker-compose up -d seaweedfs postgres-server + $DOCKER_COMPOSE_CMD up -d seaweedfs postgres-server wait_for_service "seaweedfs" 30 wait_for_service "postgres-server" 15 - echo -e "${GREEN}✓ SeaweedFS and PostgreSQL server are running${NC}" + echo -e "${GREEN}- SeaweedFS and PostgreSQL server are running${NC}" echo echo "You can now:" echo " • Run data producer: $0 produce" @@ -61,33 +77,33 @@ case "$1" in "produce") echo -e "${YELLOW}Creating MQ test data...${NC}" - docker-compose up --build mq-producer + $DOCKER_COMPOSE_CMD up --build mq-producer if [ $? -eq 0 ]; then - echo -e "${GREEN}✓ Test data created successfully${NC}" + echo -e "${GREEN}- Test data created successfully${NC}" echo echo "You can now run: $0 test" else - echo -e "${RED}✗ Data production failed${NC}" + echo -e "${RED}x Data production failed${NC}" show_logs "mq-producer" fi ;; "test") echo -e "${YELLOW}Running PostgreSQL client tests...${NC}" - docker-compose up --build postgres-client + $DOCKER_COMPOSE_CMD up --build postgres-client if [ $? -eq 0 ]; then - echo -e "${GREEN}✓ Client tests completed${NC}" + echo -e "${GREEN}- Client tests completed${NC}" else - echo -e "${RED}✗ Client tests failed${NC}" + echo -e "${RED}x Client tests failed${NC}" show_logs "postgres-client" fi ;; "psql") echo -e "${YELLOW}Connecting to PostgreSQL with psql...${NC}" - docker-compose run --rm psql-cli psql -h postgres-server -p 5432 -U seaweedfs -d default + $DOCKER_COMPOSE_CMD run --rm psql-cli psql -h postgres-server -p 5432 -U seaweedfs -d default ;; "logs") @@ -97,20 +113,20 @@ case "$1" in "status") echo -e "${BLUE}=== Service Status ===${NC}" - docker-compose ps + $DOCKER_COMPOSE_CMD ps ;; "stop") echo -e "${YELLOW}Stopping all services...${NC}" - docker-compose down - echo -e "${GREEN}✓ All services stopped${NC}" + $DOCKER_COMPOSE_CMD down + echo -e "${GREEN}- All services stopped${NC}" ;; "clean") echo -e "${YELLOW}Cleaning up everything (including data)...${NC}" - docker-compose down -v + $DOCKER_COMPOSE_CMD down -v docker system prune -f - echo -e "${GREEN}✓ Cleanup completed${NC}" + echo -e "${GREEN}- Cleanup completed${NC}" ;; "all") @@ -119,13 +135,13 @@ case "$1" in # Start services (wait_for_service ensures they're ready) $0 start - # Create data (docker-compose up is synchronous) + # Create data ($DOCKER_COMPOSE_CMD up is synchronous) $0 produce # Run tests $0 test - echo -e "${GREEN}✓ Complete test suite finished${NC}" + echo -e "${GREEN}- Complete test suite finished${NC}" ;; *) |
