summaryrefslogtreecommitdiffhomepage
path: root/vhosts/t/phpcon-kagawa-2025/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'vhosts/t/phpcon-kagawa-2025/test.sh')
-rwxr-xr-xvhosts/t/phpcon-kagawa-2025/test.sh110
1 files changed, 110 insertions, 0 deletions
diff --git a/vhosts/t/phpcon-kagawa-2025/test.sh b/vhosts/t/phpcon-kagawa-2025/test.sh
new file mode 100755
index 0000000..b3addf1
--- /dev/null
+++ b/vhosts/t/phpcon-kagawa-2025/test.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+# Main test runner for http_server.php
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+SERVER_PID=""
+PORT=8080
+HOST=127.0.0.1
+BASE_URL="http://${HOST}:${PORT}/phpcon-kagawa-2025"
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+cleanup() {
+ if [ -n "$SERVER_PID" ]; then
+ echo ""
+ echo "Stopping server (PID: $SERVER_PID)..."
+ kill $SERVER_PID 2>/dev/null || true
+ wait $SERVER_PID 2>/dev/null || true
+ echo "Server stopped."
+ fi
+}
+
+trap cleanup EXIT
+
+echo "================================"
+echo "HTTP Server Test Suite"
+echo "================================"
+echo ""
+
+# Check if port is already in use
+if lsof -i :$PORT -t >/dev/null 2>&1; then
+ echo -e "${RED}Error: Port $PORT is already in use${NC}"
+ exit 1
+fi
+
+# Start the server
+echo "Starting HTTP server..."
+php "$SCRIPT_DIR/index.php" > /dev/null 2>&1 &
+SERVER_PID=$!
+
+# Wait for server to start using health check endpoint
+echo -n "Waiting for server to be ready"
+for i in {1..30}; do
+ if curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/health" 2>/dev/null | grep -q "200"; then
+ echo " OK"
+ break
+ fi
+ echo -n "."
+ sleep 0.2
+done
+
+# Verify server is running
+if ! curl -s -o /dev/null "$BASE_URL/health" 2>/dev/null; then
+ echo -e "${RED}Error: Server failed to start${NC}"
+ exit 1
+fi
+
+echo ""
+echo "Server started on $BASE_URL (PID: $SERVER_PID)"
+echo ""
+
+# Export BASE_URL for test scripts
+export BASE_URL
+
+# Run tests
+TOTAL_PASSED=0
+TOTAL_FAILED=0
+TESTS_RUN=0
+
+run_test() {
+ local test_file="$1"
+ local test_name=$(basename "$test_file" .sh)
+
+ echo "----------------------------------------"
+
+ if bash "$test_file"; then
+ ((TOTAL_PASSED++))
+ else
+ ((TOTAL_FAILED++))
+ fi
+ ((TESTS_RUN++))
+ echo ""
+}
+
+# Run all test files
+for test_file in "$SCRIPT_DIR/tests"/test_*.sh; do
+ if [ -f "$test_file" ]; then
+ run_test "$test_file"
+ fi
+done
+
+# Summary
+echo "========================================"
+echo "Test Summary"
+echo "========================================"
+echo "Total test files: $TESTS_RUN"
+echo -e "Passed: ${GREEN}$TOTAL_PASSED${NC}"
+echo -e "Failed: ${RED}$TOTAL_FAILED${NC}"
+echo ""
+
+if [ $TOTAL_FAILED -gt 0 ]; then
+ echo -e "${RED}SOME TESTS FAILED${NC}"
+ exit 1
+else
+ echo -e "${GREEN}ALL TESTS PASSED${NC}"
+ exit 0
+fi